Domanda

ho esteso il modello utente in Django per includere molte altre variabili, come ad esempio la posizione e datore di lavoro. Ora sto cercando di creare un modulo che ha i seguenti campi:

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

Ho creato un 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

Quindi, la mia domanda è, come posso creare un ModelForm che ha accesso a tutti i campi, siano essi dal modello utente o il modello ProfiloUtente?

Spero che questo ha un senso. Sarò felice di chiarire se ci sono delle domande.

È stato utile?

Soluzione

È possibile creare due modelli di formulari (uno per utente e uno per ProfiloUtente) o creare un modulo personalizzato con tutti i campi e li spedisce nella vista.

from django import forms

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

Altri suggerimenti

Non è possibile. ModelForm si aspetta che tutti i suoi campi a venire da un singolo modello. Creare un bambino di Form e tirare le definizioni dei campi dai modelli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top