मैं Django 1.8.8
का उपयोग कर रहा हूं।Django व्यवस्थापक: मॉडलों की सूची दिखाएं
class MainModel(models.Model):
value = models.IntegerField(null=False, editable=True, default=20)
dt_modified = models.DateTimeField(null=True, auto_now=True)
class MyModel1(MainModel, models.Model):
name = models.CharField(null=False, editable=False, max_length=50)
class MyModel2(MainModel, models.Model):
foo = models.CharField(null=False, editable=False, max_length=50)
मेरे व्यवस्थापक पृष्ठ वर्तमान में इस तरह के रूप सेटअप है,
class MyModelAdmin(admin.ModelAdmin):
list_display = ('value', 'dt_modified')
search_fields = ['value']
date_hierarchy = 'dt_modified'
models = [MyModel1, MyModel2]
admin.site.register(models, MyModelAdmin)
मैं सेटअप करने के लिए मेरी व्यवस्थापक पृष्ठ चाहते हैं इस प्रकार है:: एक है
मैं इस तरह के रूप में परिभाषित किया गया मॉडल का एक बहुत कुछ है शीर्ष पृष्ठ /admin
पर लिंक करें, "मेनमोडल्स" जो मुझे दूसरे पृष्ठ पर निर्देशित करता है जहां मैं MyModel
, यानी [MyModel1, MyModel2, ....MyMoneyN]
के सभी व्युत्पन्न मॉडल की सूची से चयन कर सकता हूं जो मुझे चयनित व्युत्पन्न मॉडल को संपादित करने देता है। MyModel#
।
उपरोक्त कोड के साथ समस्या यह है कि यह प्रत्येक क्रमांकित मॉडल के लिए शीर्ष स्तर का लिंक बनाता है। अपने
class MyChangeList(ChangeList):
def url_for_result(self, result):
link = your_function_to_create_link()
return link
तब का उपयोग ModelAdmin
में Changelist
:
क्या 'your_function_to_create_link()' में जाना होगा के साथ क्या करना चाहते हैं उसके पास कुछ का एक उदाहरण है? – pyCthon
यह इस बात पर निर्भर करता है कि आप क्या करना चाहते हैं। मुझे लगता है कि आप Django व्यवस्थापक का उपयोग कर रहे हैं और आप मॉडल ऑब्जेक्ट को प्राप्त करने के लिए एक लिंक चाहते हैं। उस स्थिति में यह कुछ ऐसा हो सकता है: 'रिवर्स ("व्यवस्थापक:% s_% s_change"% (result._meta.app_label, result._meta.model_name)) '। यह प्रत्येक ऑब्जेक्ट चेंज व्यू के लिए एक सही यूआरएल बनाएगा। 'परिणाम' यहां आपकी वस्तु है। –
मैंने परिवर्तन किए और जब मैं दौड़ता हूं, 'makemigrations' यह कहता है कि कोई परिवर्तन नहीं मिला है। – pyCthon