मैं नीचे दिखाए गए मॉडल मैट्रिलिन मॉडल के लिए एक बनाएँ/संपादित फ़ॉर्म बनाने के लिए फ्लास्क-एडमिन का उपयोग करने का प्रयास कर रहा हूं। यह मॉडल एक स्ट्रिंग क्षेत्र नाम है और एक क्षेत्र एक और मॉडल Pod है, जो अपने आप में एक कबीले मॉडल के लिए एक विदेशी कुंजी क्षेत्र है के लिए एक विदेशी कुंजी बाधा के साथ pod_id।कुछ चुनिंदा फ़ील्ड विकल्पों के साथ कस्टम फ्लास्क-एडमिन फॉर्म किसी अन्य चयन क्षेत्र के अनुसार सेट
कुप्पी के व्यवस्थापक द्वारा बनाई डिफ़ॉल्ट रूपनाम क्षेत्र और Pod उदाहरण के लिए कुछ चुने हुए क्षेत्र से पता चलता है, लेकिन मैं एक क्षेत्र कबीले जोड़ने के लिए है, जो Pod अनुसार सूची रीसेट हो जाएंगे चाहते हैं कबीले उदाहरण के लिए चुना।
matriline के लिए कबीले क्षेत्र मैं डिफ़ॉल्ट ModelView ओवरराइड जोड़ सकते हैं और नीचे के रूप में देखने के MatrilineView में दिखाया गया है सभी कबीले उदाहरणों के साथ एक अतिरिक्त का चयन क्षेत्र कबीले जोड़ने के लिए, करने के लिए।
अब मैं फली की सूची हर बार एक नई कबीले चयन किया जाता है पुनर्स्थापित करने के लिए प्रदान की गई फार्म के लिए कुछ अजाक्स कोड जोड़ने की जरूरत।
मैं अजाक्स कोड सहित एक कस्टम द्वारा पूरी तरह से डिफ़ॉल्ट रूप को बदलने के लिए है? या वहां कुप्पी के व्यवस्थापक के साथ है कि करने के लिए कोई आसान तरीका है?
<b>models.py</b>
...
class Matriline(db.Model):
__tablename__ = 'matriline'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Unicode(64))
pod_id = db.Column(db.Integer, db.ForeignKey('pod.id'))
def __unicode__(self):
return self.name
class Pod(db.Model):
__tablename__ = 'pod'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Unicode(64))
matrilines = db.relationship('Matriline', backref='pod', lazy='select')
clan_id = db.Column(db.Integer, db.ForeignKey('clan.id'))
def __unicode__(self):
return self.name
class Clan(db.Model):
__tablename__ = 'clan'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Unicode(64))
pods = db.relationship('Pod', backref='clan', lazy='select')
def __unicode__(self):
return self.name
...
<b>views.py</b>
from flask_admin.contrib import sqla
from wtforms import SelectField
from orcall import models
class MatrilineView(sqla.ModelView):
column_hide_backrefs = False
form_extra_fields = {
'clan': SelectField('Clan',
choices=[ (c.id, c.name) for c in models.Clan.query.all()])
}
column_list = ('name', 'pod', 'clan')
...
Clan.query.all Clan.query.all() को फ्लास्क-व्यवस्थापक 1.4.0 पर काम करने के लिए होना चाहिए –