我有以下两种形式:
class ProfileUser(SimpleProfileUser):
photo = PhotoField(verbose_name=_('photo'))
class Client(ProfileUser):
can_be_seen = models.BooleanField(_('can be seen by other members'), default=True)
def __init__(self, *args, **kwargs):
Client._meta.get_field('phone').blank = True
我基本上有两种类型的成员。 我已经制作了普通的班级档案,照片不是空的。
但是,在Client类中,我想接受照片的空值。
这在管理员中非常有效,但在常规网站上无效。
我该如何解决?
表格代码是:
class CommonClientForm(forms.ModelForm):
"""This form for gathering common features in both admin and member forms
"""
class Meta:
model = Client
fields = '__all__'
full_location = MarkerLocationField(*[Meta.model._meta.get_field(key)
for key in ['latitude', 'longitude', 'location']], label=_('Location'))
def __init__(self, *args, **kwargs):
individual_attrs = kwargs.pop('individual_attrs', None)
super(CommonClientForm, self).__init__(*args, **kwargs)
self.fields['birthday'].widget = SelectDateWidget(individual_attrs=individual_attrs)
if self.instance:
self.initial['full_location'] = [self.instance.latitude, self.instance.longitude, self.instance.location]
答案 0 :(得分:0)
如果我在课程定义之后(在它之外)写了Client._meta.get_field('phone').blank = True
,那么它就可以了。
我认为原因是客户端字段在调用init之前初始化,而在调用init之后在admin中初始化。