如何使用Django Admin的InlineModelAdmin

一个类别包含多篇文章,假设我们希望在查看编辑某个类别信息时,一同显示并编辑同属该类别下的所有文章信息,我们可以定义先定义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,区别在于使用的模板, 一个横着,一个竖着,选项是一样的。InlineModelAdmin和ModelAdmin共同的常用options有:

form
fieldsets
fields
exclude
filter_horizontal
filter_vertical
ordering
prepopulated_fields
get_queryset()
radio_fields
readonly_fields
raw_id_fields

 

额外增加的options有:

InlineModelAdmin.model
inline使用的model,必需。

InlineModelAdmin.fk_name
model的name,当有多个外键时使用。

InlineModelAdmin.formset
缺省BaseInlineFormSet。

InlineModelAdmin.form
缺省ModelForm。当创建formset时传递给inlineformset_factory()。

InlineModelAdmin.extra
inline的额外数目。

InlineModelAdmin.get_extra()也返回inline的额外数目。

InlineModelAdmin.max_num
可展示得最大数目。

InlineModelAdmin.get_max_num()也返回此数字。

InlineModelAdmin.min_num
可展示的最小数目。

InlineModelAdmin.get_min_num()也返回此数目。

InlineModelAdmin.raw_id_fields

 

使用InlineModelAdmin一定要注意以下几点哦。

InlineModelAdmin不支持使用list_display选项,而要使用fileds或exclude选项来设置所数据表需要显示的字段。

当一个model有多个ForeignKey时,必需使用fk_name来设置主键。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django AdminDjango 框架中的一个强大的管理界面,可以用于管理网站的后台数据。使用 Django Admin 登录,需要按照以下步骤进行操作: 1. 启动 Django 项目,确保你已经创建了项目,并且在项目的 settings.py 文件中配置了数据库连接信息。 2. 在项目的 urls.py 文件中,引入 Django Admin 的路由配置。通常情况下,Django Admin 的路由配置已经在默认的 urls.py 文件中设置好,你只需要将这些配置引入即可。 ```python from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), # 其他路由配置 ] ``` 3. 在项目的终端中运行 `python manage.py runserver` 命令,启动开发服务器。 4. 在浏览器中访问 `http://localhost:8000/admin/`,会进入 Django Admin 的登录页面。 5. 在登录页面中,输入你在 Django 项目中创建的超级用户的用户名和密码,点击登录按钮。 6. 如果用户名和密码正确,会跳转到 Django Admin 的管理界面,你可以在这里管理和操作你的后台数据。 请注意,登录 Django Admin 需要一个超级用户账号,这个账号可以在项目启动后通过命令 `python manage.py createsuperuser` 来创建。创建超级用户时,需要输入用户名、电子邮件和密码等信息。 总结起来,要登录 Django Admin,你需要创建一个超级用户,并在登录页面中输入正确的用户名和密码,然后你就可以通过 Django Admin 来管理和操作你的后台数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值