2013-05-13 8 views
5

प्रत्यक्ष संबंध के लिए इनलाइन होना काफी आसान है, लेकिन मैं गहरे संबंधों के लिए इनलाइन कैसे बना सकता हूं?डीजेगो व्यवस्थापक गहरे संबंध के लिए इनलाइन

मान लीजिए कि

class A(models.Model): 
    ... 

class B(models.Model): 
    a = models.ForeignKey(A) 

class C(models.Model): 
    b = models.ForeignKey(B) 

की तरह अब मैं क्या करना चाहते हैं A के लिए व्यवस्थापक है जो सभी की यह इसी B नाम के साथ C रों है दिखाएगा में इनलाइन है स्थिति में है। मैं उसको कैसे करू?

+1

आप कुछ व्यवस्थापक और फॉर्म विधियों को पैच कर सकते हैं, लेकिन यह गन्दा हो जाएगा। मैं आपके स्वयं के कस्टम फॉर्मेट और [प्रीपेड] (https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls) को तदनुसार व्यवस्थापक दृश्य बनाने की अनुशंसा करता हूं। –

+0

या पैकेज निर्भरता का उपयोग करें क्योंकि डंठल के जवाब प्रयास के लिए –

उत्तर

2

django-nested-inlines पर एक नज़र डालें। उदाहरण से:

from django.contrib import admin 
from nested_inlines.admin import NestedModelAdmin, NestedStackedInline, NestedTabularInline 
from models import A, B, C 

class MyNestedInline(NestedTabularInline): 
    model = C 

class MyInline(NestedStackedInline): 
    model = B 
    inlines = [MyNestedInline,] 

class MyAdmin(NestedModelAdmin): 
    pass 

admin.site.register(A, MyAdmin) 
+1

+1 सुझाते हैं। हालांकि, अगर नेस्टेड इनलाइनों को आधिकारिक रूप से समर्थित किया गया तो यह अच्छा समाधान होगा। दुर्भाग्य से वे नहीं हैं। – vartec

संबंधित मुद्दे