Ben bu kadarını modelleri var:Django yönetici değişiklik listesi filtreleme/link
class ParentModel(models.Model):
some_col = models.IntegerField()
some_other = models.CharField()
class ChildModel(models.Model)
parent = models.ForeignKey(ParentModel, related_name='children')
class ToyModel(models.Model)
child_owner = models.ForeignKey(ChildModel, related_name='toys')
Şimdi ParentModel
için değişiklik listesi açmak benim yönetici panelinde ben list_display içinde yeni bir alan/sütunun ChildModel
'un değişmezini açmak için bir bağlantı ile ancak seçilen ebeveynin yalnızca çocuklarını göstermek için uygulanan bir filtreyle. Şimdilik ben bu yöntemle bunu fark, ama bunu yapmak için temizleyici bir yolu olduğunu düşünüyorum, ben sadece nasıl bilmiyorum:
class ParentAdmin(admin.ModelAdmin)
list_display = ('id', 'some_col', 'some_other', 'list_children')
def list_children(self, obj):
url = urlresolvers.reverse('admin:appname_childmodel_changelist')
return '<a href="{0}?parent__id__exact={1}">List children</a>'.format(url, obj.id)
list_children.allow_tags = True
list_children.short_description = 'Children'
admin.site.register(Parent, ParentAdmin)
Yani benim sorum, bu olmadan aynı elde etmek mümkündür "bağlantı kesmek"? Ayrıca, çocuklarından herhangi biri oyuncak varsa, ParentModel
değişiklik listesinde ayrı bir sütunda belirtmek mümkün mü?
Cevabınız için teşekkürler, gerçekten bana çok yardımcı oldu. Django'nun değişmeyen bağlantı özelliği için daha zarif bir yolu olmadığı konusunda şaşırdım. Her neyse, yardımlarınız şimdi bütün sorunlarımı çözdü. –