![](/img/trans.png)
[英]Django: show the count of related objects in admin list_display
[英]How to show related objects in Django/Admin?
我有 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
我正在使用 Django 的管理站點進行基本的 CRUD 操作。 如果我在管理中選擇一個類別,我需要顯示類別中的所有事物。
您可以使用“內聯”在該類別的管理詳細信息中可視化和編輯某個類別的事物:
在 admin.py 文件中,為 Thing (ThingInline) 創建一個 Inline 對象並修改您的 CategoryAdmin 類以具有 ThingInline 類型的內聯,如下所示:
...
class ThingInline(admin.TabularInline):
model = Thing
class CategoryAdmin(admin.ModelAdmin):
inlines = [
ThingInline,
]
...
有關更多詳細信息,這是管理內聯文檔: https : //docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects
像這樣更新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)
有兩個內聯選項TabularInline
和StackedInline
幾分鍾前,搜索如何解決類似問題,我終於找到了解決方案。
您實際上也必須遵循@Matteo Scotuzzi 的回答,然后
在您創建這些模型的應用程序中的 admin.py 中,您必須在@Matteo 代碼段下方聲明如下:
admin.site.register(Category, CategoryAdmin)
這足以使所有“事物”出現在您的 Django 管理相應頁面中的“類別”中,即“類別”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.