在Django扩展用户模型后,你如何创建的ModelForm?
题
我延伸django的用户模型以包括其他几个变量,如位置,和雇主。现在,我试图创建一个具有以下字段的格式:
First name (from User)
Last name (from User)
Location (from UserProfile, which extends User via a foreign key)
Employer (also from UserProfile)
我已经创建了一个的ModelForm:
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?
希望这是很有意义的。我会很乐意澄清,如果有任何问题。
解决方案
您可以创建两个模型的形式(一个用户,一个用于用户配置),或者创建拥有所有的字段自定义表单和视图派遣他们。
from django import forms
class ContactForm(forms.Form):
first_name = forms.CharField()
last_name = forms.CharField()
location = forms.CharField()
employer = forms.CharField()
其他提示
您不能。 ModelForm
希望所有的字段来自一个单一的模式。创建Form
的一个孩子,从型号上拉字段定义。
不隶属于 StackOverflow