मेरे मॉडल स्थिति के आधार पर, मैं उपयोगकर्ता को एक अलग रूप दिखाना चाहता हूं। मैं यह समझने की कोशिश कर रहा हूं कि मैं सही रूप में संदर्भ कैसे संग्रहीत करता हूं ताकि मैं इसे अपने विचार में लोड कर सकूं।
एक सामान्य दृश्य इस तरह दिखेगा:
from myapp.forms import SomeForm
def view():
form = SomeForm()
हालांकि, चूंकि मुझे नहीं पता कि मेरे मॉडल की कौन सी रूप है, मैं फॉर्म क्लास को गतिशील रूप से कैसे आयात करूं?
मैंने कोशिश की:
from django.forms import ModelForm
modelforms = ModelForm.__subclasses__()
def get_modelform(model):
return filter(lambda x:x.Meta.model == model, modelforms)[0]
लेकिन यह केवल तभी काम करता है जब प्रोजेक्ट में फॉर्म आयात किया गया हो। चूंकि मेरा फॉर्म इसमें स्वयं का form.py फ़ाइल रहता है, यह काम नहीं करता है :(
उत्तर:
उत्तर № 1 के लिए 1आपके form.py में फ़ाइल, एक ऐसा फ़ंक्शन लिखें जो आपके मानदंडों के अनुसार सही रूप देता है। फिर इसे अपने दृश्य में आयात करें और उसे वहां कॉल करें।
उत्तर № 2 के लिए 1
एक समारोह लिखें जो शर्त के अनुसार आवश्यक फॉर्म वर्ग लौटाता है।
जवाब के लिए 0 № 3
आपको मॉडलफॉर्म फैब्रिक का उपयोग करना होगा, यह आपको अपने मॉडल के लिए फॉर्म बनाने में मदद कर सकता है
FormClass = modelform_factory(ModelClass)
https://code.djangoproject.com/browser/django/trunk/django/forms/models.py#L370