13

मैं मॉडल की एक जोड़ी है:मैं Django व्यवस्थापक इंटरफ़ेस में ForeignKey रिवर्स लुकअप की एक सूची कैसे दिखाऊं?

class Customer(models.Model): 
    customer_name = models.CharField(max_length=200) 

    def __unicode__(self): 
     return self.customer_name 

    class Meta: 
     ordering = ('customer_name',) 

class Unit(models.Model): 
    unit_number = models.IntegerField() 
    rentable = models.BooleanField() 
    owner = models.ForeignKey(Customer, related_name='units', blank=True, null=True) 

    def __unicode__(self): 
     return str(self.unit_number) 

    class Meta: 
     ordering = ('unit_number',) 

मैं व्यवस्थापक ठीक जब मैं एक इकाई जोड़ रहा काम कर इंटरफेस है (मैं जो ग्राहक इसे करने के लिए आवंटित करने के लिए चुन सकते हैं) लेकिन जब मैं बनाने के लिए/संपादन एक जाना DJango व्यवस्थापक इंटरफ़ेस में ग्राहक, यह किसी भी इकाई को चुनने के लिए सूचीबद्ध नहीं करता है। ग्राहक क्षेत्र बनाने/संपादित करने में से किसी एक से मिलान करने के लिए मैं उस अनुभाग में लुकअप को कैसे सक्षम कर सकता हूं?

उत्तर

36

डिफ़ॉल्ट रूप से, मॉडलएडमिन आपको केवल "मॉडल" मॉडल का प्रबंधन करने देगा, न कि संबंधित मॉडल। संबंधित यूनिट मॉडल को संपादित करने के लिए, आपको "इनलाइन मॉडेलएडमिन" को परिभाषित करने की आवश्यकता है - जैसे admin.TabularInline - और इसे अपने ग्राहक एडमिन से संलग्न करें।

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects

उदाहरण के लिए, अपने admin.py में:

from django.contrib import admin 
from models import Customer, Unit 

class UnitInline(admin.TabularInline): 
    model = Unit 

class CustomerAdmin(admin.ModelAdmin): 
    inlines = [ 
     UnitInline, 
    ] 
admin.site.register(Customer, CustomerAdmin) 
संबंधित मुद्दे