بعد توسيع نموذج المستخدم في Django ، كيف يمكنك إنشاء Modelform؟

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

  •  22-09-2019
  •  | 
  •  

سؤال

لقد قمت بتوسيع نموذج المستخدم في Django لتشمل العديد من المتغيرات الأخرى ، مثل الموقع وصاحب العمل. الآن أحاول إنشاء نموذج يحتوي على الحقول التالية:

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

لقد أنشأت مودفورم:

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

لذا ، سؤالي هو ، كيف يمكنني إنشاء مُعد مودفا لديه إمكانية الوصول إلى جميع الحقول ، سواء كانت من نموذج المستخدم أو نموذج المستخدم؟

أتمنى أن يكون هذا منطقيًا. سأكون سعيدًا لتوضيح ما إذا كانت هناك أي أسئلة.

هل كانت مفيدة؟

المحلول

يمكنك إما إنشاء نموذجين للموديلات (أحدهما للمستخدم وواحد لـ UserProfile) أو إنشاء نموذج مخصص مع جميع الحقول الخاصة بك وإرسالها في عرضك.

from django import forms

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

نصائح أخرى

لا يمكنك. ModelForm تتوقع أن تأتي جميع حقولها من نموذج واحد. إنشاء طفل Form وسحب تعريفات الحقل من النماذج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top