如何将模型嵌套在Django数据库中的模型中



我有以下模型,目前由外国键连接:

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

最新更新