2014-05-28 3 views
1

Джанго версия: 1.3.7 версия питон: 2,6Удалить пустой уровень в Джанго форме модели

model.py

CHOICES = (('Hospital','Hospital'),("Doctor's office", "Doctor's office")) 




place_of_first = models.CharField(max_length=100, default=None, choices=CHOICES, 
               blank=True, null=True, verbose_name="") 

form.py

class Form(ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(Form, self).__init__(*args, **kwargs) 
     self.fields['creation_date'].widget.attrs['readonly'] = True 



    required_css_class = 'required' 

    class Meta: 
     model = MODELFORM 
     widgets = { 
      'place_of_first' : RadioSelect() 
} 

его дает пустой уровень с radioobutton like [radioi button "------------------"] Я хочу удалить этот уровень с помощью переключателя. его необязательное поле.

ответ

1

я действительно лицо такой же выпуск. Обновите файл forms.py.

if self.fields['place_of_first'].widget.choces[0][0] == "" : 
    del self.fields['place_of_first'].widget.choices[0] 

Надеюсь, это сработает для вас !!!

+0

отлично работает для меня !!! благодаря – user3269734

1

вы получаете тире, потому что у вас есть blank=True, установленный в вашей модели. Попробуйте переключить его на blank=False.

Вот некоторая информация от Django site:

Если не пустой = False устанавливается на поле вместе с дефолту затем этикетку, содержащую «---------» будет оказана с выберите поле. Чтобы отменить это поведение, добавьте кортеж в варианты, содержащие None; например (Нет, «Ваша строка для отображения»). В качестве альтернативы вы можете использовать пустую строку вместо None, где это имеет смысл - например, на CharField.

+0

его необязательный файл, поэтому я не могу установить пустой = False !! – user3269734

+0

Как вы выбираете пустое значение, если ваше поле не является обязательным, и вы удаляете пустой выбор? – Luca

+0

Это новое введение в версию 1.7. До этого кажется, что «--------» всегда будет добавляться независимо от «пустого» атрибута поля. – hanson

Смежные вопросы