Depois de estender o modelo de usuário em Django, como você cria uma forma de modeLFM?
Pergunta
Estendi o modelo de usuário em Django para incluir várias outras variáveis, como localização e empregador. Agora estou tentando criar um formulário que tenha os seguintes campos:
First name (from User)
Last name (from User)
Location (from UserProfile, which extends User via a foreign key)
Employer (also from UserProfile)
Eu criei um 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
Então, minha pergunta é: como posso criar um modelform que tenha acesso a todos os campos, sejam eles do modelo de usuário ou do modelo de uso do usuário?
Espero que isso faça sentido. Ficarei feliz em esclarecer se há alguma dúvida.
Solução
Você pode criar dois formulários de modelo (um para o usuário e outro para o UserProfile) ou criar um formulário personalizado com todos os seus campos e despachar em sua opinião.
from django import forms
class ContactForm(forms.Form):
first_name = forms.CharField()
last_name = forms.CharField()
location = forms.CharField()
employer = forms.CharField()
Outras dicas
Você não pode. ModelForm
espera que todos os seus campos venham de um único modelo. Criar um filho de Form
e puxe as definições de campo dos modelos.