Frage

Ich erweiterte die User-Modell in django mehrere andere Variablen umfassen, wie Standort und Arbeitgeber. Jetzt versuche ich, ein Formular zu erstellen, die die folgenden Felder hat:

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

Ich habe eine Modelform erstellt:

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

Also, meine Frage ist, wie kann ich eine Modelform erstellen, die den Zugriff auf alle Felder haben, ob sie aus dem User-Modell oder das Userprofil Modell sind?

Hope macht Sinn. Ich werde glücklich sein, zu klären, ob es irgendwelche Fragen.

War es hilfreich?

Lösung

Sie können entweder erstellen zwei Modellformen (eine für Benutzer und eine für Userprofile) oder ein benutzerdefiniertes Formular mit allen Feldern erstellen und versenden Sie sie in Ihrer Ansicht.

from django import forms

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

Andere Tipps

Sie können nicht. ModelForm erwartet von allen Feldern aus einem einzigen Modell zu kommen. Erstellen Sie ein Kind von Form und ziehen Sie die Felddefinitionen aus den Modellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top