You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 09:46:05