我有以下模型,目前由外国键连接:
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]
您可以使用inlines(tagularinline或stackedInline(
进行操作首先为您的条目创建内联类:
class EntryInlines(admin.TabularInline):
model = Entry
# you can customize fields displayed here; make any field as read only if you want
现在,将EntryInlines
包括在您要显示数据的模型(仅当外国条目模型具有外键以相应模型的情况下(如下:
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