Django Admin中为内联卡片表格添加编辑页跳转链接
在Django 4.2.11的TabularInline中实现卡片名称跳转至编辑页
完全可行,具体实现步骤如下:
1. 导入必要模块
在你的admin.py中导入所需工具:
from django.contrib import admin from django.utils.html import format_html from django.urls import reverse from .models import LorcanaSets, LorcanaSetsCards
2. 自定义TabularInline类
创建自定义的Inline类,添加生成跳转链接的方法:
class LorcanaSetsCardsInline(admin.TabularInline): model = LorcanaSetsCards # 替换原名称字段为自定义的跳转链接字段,可按需添加其他需要显示的字段 fields = ('card_link', 'mana_cost', 'rarity') # 将card_link设为只读(跳转后去单独页面编辑,无需在Inline中修改名称) readonly_fields = ('card_link',) def card_link(self, obj): # 生成对应卡片的后台编辑页URL # 替换`your_app_name`为你的Django应用名称(小写) url = reverse('admin:your_app_name_lorcanasetscards_change', args=[obj.pk]) # 返回带链接的HTML文本 return format_html('<a href="{}">{}</a>', url, obj.name) # 设置表格列的显示标题 card_link.short_description = '卡片名称'
3. 关联Inline到集合模型的Admin类
在集合模型的Admin注册中添加这个Inline:
@admin.register(LorcanaSets) class LorcanaSetsAdmin(admin.ModelAdmin): inlines = [LorcanaSetsCardsInline]
关键说明
- URL名称验证:可以执行
python manage.py show_urls命令,查找LorcanaSetsCards模型对应的编辑页URL名称,确保reverse中的参数正确,格式为admin:app_label_modelname_change - 权限控制:使用该功能的用户需要拥有
LorcanaSetsCards模型的编辑权限,否则点击链接会跳转到权限不足页面 - 字段调整:如果需要在Inline中仍可编辑卡片名称,可以保留原
name字段在fields列表中,同时添加card_link字段,实现“显示链接+编辑框”的组合(但通常推荐跳转到单独页面编辑,避免Inline中操作混乱)
内容的提问来源于stack exchange,提问作者Ross
相关产品推荐
相关产品推荐

