Django中扩展用户的扩展UserCreationForm

Django中扩展用户的扩展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

我扩展了django用户,现在需要创建一个注册表

我弄明白了其中的大部分,但我不知道如何排除注册期间不需要的字段。好的,我看到登记表上的所有字段

代码如下:

models.py

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
扩展。只需限制表单中属于正确元模型的字段。

这不起作用。我只能选择属于元模型的字段。但是我可以在我的艺术课上选择它们。