笔记 djangoadmin不同的详情页面字段显示不同是信息

文章详细描述了如何在Django的Admin界面中,针对AssCompanyModel进行定制,包括使用TabularInline展示内联模型、annex_link方法实现附件链接点击后的行为以及get_inline_instances和get_fieldsets方法对附件操作时字段的控制。
摘要由CSDN通过智能技术生成
class AssCompanyAttaInline(admin.TabularInline):
    model = AssCompanyAttaModel
    extra = 0


@admin.register(AssCompanyModel)
class AssCompanyAdmin(ImportExportModelAdmin):
    # 列表中显示的字段(表头)
    list_display = ('company', 'annex_link')

    # 设置点击哪些字段可以点击进入编辑界面,默认为id字段
    list_display_links = ('company', 'annex_link')

    def annex_link(self, obj):
        url = reverse('admin:assinfo_asscompanymodel_change', args=[obj.pk]) + '?annex=annex'

        return format_html(f'<a _target="_self" href="{url}">附件</a>')

    annex_link.short_description = '附件'

    def get_inline_instances(self, request, obj=None):
        """
        如果点击的附件链接,则显示内联的附件模型
        """
        inlines = super().get_inline_instances(request, obj)
        if request.GET.get('annex'):
            inlines = [AssCompanyAttaInline(self.model, self.admin_site),]
        return inlines

    def get_fieldsets(self, request, obj=None):
        """
        如果点击的附件链接,则将其他字段的详情信息全部隐藏
        """
        if request.GET.get('annex'):
            return [(None, {"fields": ()})]
        return super().get_fieldsets(request, obj)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值