我有以下型号,目前由ForeignKey连接:
class Topic(models.Model):
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __str__ (self):
return self.text
class Entry(models.Model):
topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
if len(self.text) > 50:
return self.text[:50] + "..."
else:
return self.text
是否可以通过Django管理网站中的方式连接它们,我可以转到特定主题并显示所有条目的列表?目前没有显示任何内容,我只能在访问特定条目时看到连接(有一个下拉菜单说明当前条目属于哪个主题)。
编辑:这些是内联添加到admin.py:
from django.contrib import admin
from javascript.models import Topic, Entry
# Register your models here.
admin.site.register(Topic)
admin.site.register(Entry)
#inlines
class EntryInline(admin.TabularInline):
model = Entry
class TopicAdmin(admin.ModelAdmin):
inlines = [EntryInline]
答案 0 :(得分:1)
您可以继续使用inlines(TabularInline或StackedInline)
首先为您的条目创建内联类:
class EntryInlines(admin.TabularInline):
model = Entry
# you can customize fields displayed here; make any field as read only if you want
现在将EntryInlines
包含到要显示数据的模型中(仅当外部Entry模型具有相应模型的外键时),如下所示:
class TopicAdmin(admin.ModelAdmin):
inlines = [EntryInlines] # you can add multiple inline tables too. pass it in the list
# all other customization of your model admin if any
如果你有嵌套的外键,那么你需要添加这个第三方包,如django-nested-inline