Django中扩展用户的扩展UserCreationForm
我扩展了django用户,现在需要创建一个注册表 我弄明白了其中的大部分,但我不知道如何排除注册期间不需要的字段。好的,我看到登记表上的所有字段 代码如下: models.pyDjango中扩展用户的扩展UserCreationForm,django,django-forms,django-users,Django,Django Forms,Django Users,我扩展了django用户,现在需要创建一个注册表 我弄明白了其中的大部分,但我不知道如何排除注册期间不需要的字段。好的,我看到登记表上的所有字段 代码如下: models.py class Artist(Model): user = OneToOneField(User, unique=True) address = CharField(max_length=50) city = CharField(max_length=30) ustid = CharField
class Artist(Model):
user = OneToOneField(User, unique=True)
address = CharField(max_length=50)
city = CharField(max_length=30)
ustid = CharField(max_length=14)
date_of_birth = DateField()
bio = CharField(max_length=500)
def __unicode__(self):
return self.user.get_full_name()
User.profile = property(lambda u: Artist.objects.get_or_create(user=u)[0])
forms.py
class RegistrationForm(UserCreationForm):
class Meta:
model = User
def __init__(self, *args, **kwargs):
super(RegistrationForm, self).__init__(*args, **kwargs)
artist_kwargs = kwargs.copy()
if kwargs.has_key('instance'):
self.artist = kwargs['instance'].artist
artist_kwargs['instance'] = self.artist
self.artist_form = ArtistForm(*args, **artist_kwargs)
self.fields.update(self.artist_form.fields)
self.initial.update(self.artist_form.initial)
def clean(self):
cleaned_data = super(RegistrationForm, self).clean()
self.errors.update(self.artist_form.errors)
return cleaned_data
def save(self, commit=True):
self.artist_form.save(commit)
return super(RegistrationForm, self).save(commit)
如何排除字段?不能包括或排除非元模型成员的字段
class Meta:
model = User
exclude = ('bio',)
你能做的就是在每一种形式中都这样做。在这种情况下,
UserCreationForm
由ArtistForm
扩展。只需限制表单中属于正确元模型的字段。这不起作用。我只能选择属于元模型的字段。但是我可以在我的艺术课上选择它们。