在django中扩展User模型后,如何创建ModelForm?

时间:2010-03-24 22:06:50

标签: django extend modelform

我在django中扩展了User模型以包含其他几个变量,例如location和雇主。现在我正在尝试创建一个包含以下字段的表单:

First name (from User)
Last name (from User)
Location (from UserProfile, which extends User via a foreign key)
Employer (also from UserProfile)

我创建了一个模型:

from django.forms import ModelForm
from django.contrib import auth
from alert.userHandling.models import UserProfile

class ProfileForm(ModelForm):
    class Meta:
#       model = auth.models.User # this gives me the User fields
        model = UserProfile # this gives me the UserProfile fields

所以,我的问题是,我如何创建一个可以访问所有字段的ModelForm,无论它们来自User模型还是UserProfile模型?

希望这是有道理的。我很乐意澄清是否有任何问题。

2 个答案:

答案 0 :(得分:3)

您可以创建两个模型表单(一个用于User,一个用于UserProfile)或创建包含所有字段的自定义表单,并在视图中发送它们。

from django import forms

class ContactForm(forms.Form):
    first_name = forms.CharField()
    last_name = forms.CharField()
    location = forms.CharField()
    employer = forms.CharField()

答案 1 :(得分:0)

你做不到。 ModelForm期望其所有字段都来自单个模型。创建一个Form的子项,并从模型中提取字段定义。