Django Model Forms - Setting a required field

 15 class Profile(models.Model):
 16     """
 17     User profile model
 18     """
 19     user = models.ForeignKey(User, unique=True)
 20     country = models.CharField('Country', blank=True, null=True, default='',\
 21                                max_length=50, choices=country_list())
 22     is_active = models.BooleanField("Email Activated")

У меня есть модель, как описано выше, с country, установленной в blank=True, null=True.

Однако в форме, которая представляется конечному пользователю, я требовал, чтобы поле страны было заполнено.

Поэтому я переопределяю поле в Model Form следующим образом, чтобы "заставить" его стать обязательным:

 77 class ProfileEditPersonalForm(forms.ModelForm):
 78 
 79     class Meta:
 80         model = Profile
 81         fields = ('email',
 82                   'sec_email',  
 83                   'image',
 84                   'first_name',
 85                   'middle_name',
 86                   'last_name',
 87                   'country',
 88                   'number',
 89                   'fax',)
 90 
 98     country =  forms.ChoiceField(label='Country', choices = country_list())

Итак, поле страны - это всего лишь пример (их существует множество). Есть ли лучший более DRY способ сделать это?

17
задан super9 7 October 2011 в 03:39
поделиться