2016-05-15 111 views
0

views.pyDjango - 錯誤 - 選擇一個有效的選擇。 [<some choice>]是不是可用選項之一

class AddLocationPageView(FormView): 
    template_name = 'add_location.html' 
    form_class = LocationForm 
    success_url = '/add_location/location_added/' 

    def form_valid(self, form): 
     form.save() 
     return super(AddLocationPageView, self).form_valid(form) 

models.py

type_choices = (
    ('Рассвет/Закат', 'Рассвет/Закат'),('Ландшафт', 'Ландшафт'),('Природа', 'Природа'), 
    ('Вода', 'Вода'),('Животные', 'Животные'),('Люди', 'Люди'), 
    ('Архитектура', 'Архитектура'),('Город', 'Город'),('Астрофото', 'Астрофото'), 
    ('Панорама', 'Панорама'),('Транспорт', 'Транспорт'),('Свадьба', 'Свадьба'), 
) 

visit_choices = (
    ('Январь', 'Январь'),('Февраль', 'Февраль'),('Март', 'Март'), 
    ('Апрель', 'Апрель'),('Май', 'Май'),('Июнь', 'Июнь'), 
    ('Июль', 'Июль'),('Август', 'Август'),('Сентябрь', 'Сентябрь'), 
    ('Октябрь', 'Октябрь'),('Ноябрь', 'Ноябрь'),('Декабрь', 'Декабрь'), 
) 

class Location(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1) 
    name = models.CharField(max_length=100, verbose_name="Локация", default='') 
    types = models.CharField(max_length=50, verbose_name="Тип локации", choices=type_choices, default='') 
    visit_times = models.CharField(max_length=50, verbose_name="Лучшее время для съемки", choices=visit_choices, default='') 
    photos = models.ImageField(upload_to='photos', null=True, blank=True) 
    keywords = models.CharField(max_length=100, verbose_name="Ключевые слова", default='') 
    description = models.TextField(null=True, blank=True) 

    def __unicode__(self): 
     return self.name 

forms.py

class LocationForm(forms.ModelForm): 
    class Meta: 
     model = Location 
     fields = ['name', 'types', 'visit_times', 'photos', 'keywords', 'description'] 
     widgets = { 
      'name': forms.TextInput(attrs={'placeholder': 'Напр. Стоунхендж'}), 
      'types': forms.SelectMultiple(), 
      'visit_times': forms.SelectMultiple(), 
      'keywords': forms.TextInput(attrs={'placeholder': 'Напр. море, побережье, скалы'}), 
      'description': forms.Textarea(attrs={'placeholder': 'Любая информация, которую посчитаете нужной'}) 
     } 

我填寫頁面上的字段並在SELECT字段上做一些選擇。然後我按下按鈕並在SELECT字段上獲得錯誤 - >選擇一個有效的選項。 [某些選擇]不是可用選項之一

非常感謝!

回答

1

嘗試

'types': forms.Select(), 
    'visit_times': forms.Select(), 

你在你的模型中定義的類型,也可以visit_times具有的選擇只有一個值。有可能獲得更多選擇,但您必須考慮如何將這些數據保存到數據庫。看看這個:

https://pypi.python.org/pypi/django-multiselectfield/

https://pypi.python.org/pypi/django-select-multiple-field/

+0

,但我需要有多種選擇的可能性..? – Dennis

+0

您在模型中定義'types'和'visit_times'只能有一個值。可以有更多的選擇,但你必須考慮如何將這些數據保存到數據庫中。看看這個:https://pypi.python.org/pypi/django-multiselectfield/和https://pypi.python.org/pypi/django-select-multiple-field/ – trantu

+0

非常感謝! – Dennis

相關問題