如何使用Django Admin的InlineModelAdmin及案例

本文介绍了如何在Django Admin中利用InlineModelAdmin类,特别是TabularInline和StackedInline,来在同一页面编辑类别及其关联的文章信息。通过设置form、fieldsets等选项,可以方便地定制编辑界面,提高效率。同时强调了InlineModelAdmin的使用注意事项,如不支持list_display,需要指定fk_name等。
摘要由CSDN通过智能技术生成

一个类别包含多篇文章,假设我们希望在查看编辑某个类别信息时,一同显示并编辑同属该类别下的所有文章信息,我们可以定义先定义ArticleInline类,然后把其附在CategoryAdmin里。这样我们就可以实现在同一页面上编辑类别和所属文章信息了,是不是很帅?

#blog/admin.py

from django.contrib import admin
from .models import Article, Category, Tag

class ArticleInline(admin.TabularInline):
    model = Article
    '''设置列表可显示的字段'''
    fields = ('title', 'author',  'status', 'mod_date',)


class CategoryAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('name',)}
    raw_id_fields = ("parent_category", )
    inlines = [ArticleInline, ]

admin.site.register(Category, CategoryAdmin)

展示效果如下所示。试想下,你想手动编写同样代码又要花多长时间?估计使用Mixins和Formsets早就让你心烦意乱了吧。

Django提供了两个InlineModelAdmin的子类:TabularInline和StackedInline

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值