我在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模型?
希望这是有道理的。我很乐意澄清是否有任何问题。
答案 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
的子项,并从模型中提取字段定义。