2013-04-17 21 views
13

Ben modelleri bir çift var: Ben bir birim eklerken iyi çalışıyor yönetici arayüzüne sahipDJango yönetici arayüzünde ForeignKey geriye doğru aramalarının bir listesini nasıl gösteririm?

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',) 

(bunu atamak hangi müşteri seçebilirsiniz) ama/düzenle a oluşturmak giderken DJango yönetici arayüzünde müşteri, aralarından seçim yapabileceğiniz herhangi bir birimi listelemez. Oluştur/düzenle müşteri alanındaki biriyle eşleştirmek için bu bölümdeki aramayı nasıl etkinleştirebilirim?

cevap

36

Varsayılan olarak, bir ModelAdmin yalnızca modeli değil "modelini" yönetmenize izin verir. İlgili Birim modelini düzenlemek için, bir "InlineModelAdmin" - admin.TabularInline - gibi bir tanımlamanız ve bunu CustomerAdmin'inize eklemeniz gerekir. Örneğin

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

, sizin admin.py içinde:

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) 
İlgili konular