2016-05-15 4 views
0

views.pyDjango - Fehler - Wählen Sie eine gültige Auswahl. [<some choice>] ist nicht eine der verfügbaren Optionen

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': 'Любая информация, которую посчитаете нужной'}) 
     } 

ich in den Feldern auf der Seite ausfüllen und machen Sie eine Auswahl in SELECT-Feldern. Dann drücke ich den Knopf und bekomme den Fehler bei SELECT-Feldern -> Wähle eine gültige Auswahl. [einige Auswahl] ist nicht eine der verfügbaren Möglichkeiten

Vielen Dank!

Antwort

1

Versuchen

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

Sie in Ihrem Modell definiert, die Typen und auch nur einen Wert aus der Auswahl visit_times haben. Es ist möglich, mehr Auswahlmöglichkeiten zu erhalten, aber Sie müssen darüber nachdenken, wie Sie diese Daten in der Datenbank speichern können. Werfen Sie einen Blick auf diese:

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

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

+0

aber ich brauche Möglichkeit, mehrere Wahl haben ..? – Dennis

+0

Sie haben in Ihrem Modell definiert, dass 'types' und auch' visit_times' nur einen Wert aus den Auswahlmöglichkeiten haben können. Es ist möglich, mehr Auswahlmöglichkeiten zu erhalten, aber Sie müssen darüber nachdenken, wie Sie diese Daten in der Datenbank speichern. Werfen Sie einen Blick darauf: https://pypi.python.org/pypi/django-multiselectfield/ und https://pypi.python.org/pypi/django-select-multiple-field/ – trantu

+0

vielen Dank !!! – Dennis

Verwandte Themen