/ / Django - मॉडल के लिए अलग-अलग रूप - django, django-models, django-form

Django - मॉडल के लिए अलग-अलग रूप - django, django-models, django-form

मेरे मॉडल स्थिति के आधार पर, मैं उपयोगकर्ता को एक अलग रूप दिखाना चाहता हूं। मैं यह समझने की कोशिश कर रहा हूं कि मैं सही रूप में संदर्भ कैसे संग्रहीत करता हूं ताकि मैं इसे अपने विचार में लोड कर सकूं।

एक सामान्य दृश्य इस तरह दिखेगा:

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