Depois de estender o modelo de usuário em Django, como você cria uma forma de modeLFM?

StackOverflow https://stackoverflow.com/questions/2511759

  •  22-09-2019
  •  | 
  •  

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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top