【问题标题】:Linking two models in an App together in Django Admin在 Django Admin 中将 App 中的两个模型链接在一起
【发布时间】:2015-06-25 22:35:31
【问题描述】:

我想知道除了在模型中添加内联之外,是否还可以实际创建到相关模型的链接

class A():
   var1 = 
   var2 =

class B():
   var1 = models.ManyToManyField(A)
   var2 =
   var3=

admin.py:

class BInline(admin.TabularInline):
  model = B
  def

class AAdmin(admin.ModelAdmin):
  inlines = BInline

在管理中,它们与直通内联相关;但是我实际上想在模型 A 中链接到模型 B,反之亦然,因为现在我唯一能做的就是按名称向 A 添加新的 B,反之亦然,但我无法从 A 编辑 B 中的其他变量。

我想通过允许从 A 直接访问 B 来简化管理页面中管理模型的过渡。

我尝试创建一个管理员链接,但它显示为 BInline 指定了未知字段 (admin_link)

def admin_link(self, instance):
    url = reverse('admin:%s_%s_change' % (instance._meta.app_label, instance._meta.module_name), args=[instance.id])
    return mark_safe(u'<a href="{u}">Edit</a>'.format(u=url))
    fields = ('choice_text','votes','admin_link')

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    创建一个 C 类怎么样 类似:

    class C(A, B):
        var1 = 
        var2 = ....
    

    在管理页面中,您可以访问两个模型的所有字段

    【讨论】:

    • 这是否与 Django 相关?我正在使用 python。
    • 是的,我做过类似的事情。不要忘记:a & b 类应该继承自 model.models
    • 谢谢,我会考虑这个选项。
    猜你喜欢
    • 2018-06-17
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2021-10-26
    相关资源
    最近更新 更多