我有2个型号:
from django.db import models
class Category(models.Model):
icon = models.ImageField(upload_to = 'thing/icon/')
image = models.ImageField(upload_to = 'thing/image/')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
title = models.CharField(max_length=200)
slug = models.SlugField()
desc = models.TextField(max_length=1000)
def __str__(self):
return self.title
def __unicode__(self):
return self.title
class Thing(models.Model):
icon = models.ImageField(upload_to = 'thing/icon/')
image = models.ImageField(upload_to = 'thing/image/')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
title = models.CharField(max_length=200)
slug = models.SlugField()
desc = models.TextField(max_length=1000)
content = models.TextField()
category = models.ForeignKey('Category')
def __str__(self):
return self.title
def __unicode__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
我正在使用Django的管理站点进行基本的CRUD操作.如果我在管理员中选择一个类别,我需要在类别中显示所有内容.
Mat*_*zzi 29
您可以使用"内联"在该类别的管理详细信息中可视化和编辑某个类别的内容:
在admin.py文件中,为Thing(ThingInline)创建一个Inline对象,并修改您的CategoryAdmin类,使其具有ThingInline类型的内联,如下所示:
...
class ThingInline(admin.TabularInline):
model = Thing
class CategoryAdmin(admin.ModelAdmin):
inlines = [
ThingInline,
]
...
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅管理员内联文档:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects
小智 5
admin.py像这样更新文件。
from django.contrib import admin
from .views import Category, Thing
class CategoryAdmin(admin.ModelAdmin):
inlines = [
ThingInline,
]
class ThingInline(admin.TabularInline):
model = Thing
admin.site.register(Category, CategoryAdmin)
admin.site.register(Thing)
Run Code Online (Sandbox Code Playgroud)
有两个内联选项TabularInline和StackedInline