بعد توسيع نموذج المستخدم في Django ، كيف يمكنك إنشاء Modelform؟
سؤال
لقد قمت بتوسيع نموذج المستخدم في 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
وسحب تعريفات الحقل من النماذج.
لا تنتمي إلى StackOverflow