Python 如何使用ContentTypes for Django admin在两个应用程序之间访问ManyToManyField?

Python 如何使用ContentTypes for Django admin在两个应用程序之间访问ManyToManyField?,python,django,python-3.x,django-models,django-admin,Python,Django,Python 3.x,Django Models,Django Admin,假设我有一个名为Pantry的应用程序,可以连接到我可能附带的任何其他应用程序。为了保持应用程序的解耦,通过模型LinkedItem使用通用关系,该模型将配料模型连接到餐具室外的应用程序 我可以在Django中为LinkedItem的管理员制作一个过滤器。现在我希望通用关系另一端的内容,比如一个名为Bakery的应用程序,能够对配料进行过滤 餐具室 models.py 面包房 管理员 有什么想法吗?一个解决方案是为LinkedItem创建一个链接,并对显示设置一些限制,以避免重复,如下所示: f

假设我有一个名为Pantry的应用程序,可以连接到我可能附带的任何其他应用程序。为了保持应用程序的解耦,通过模型LinkedItem使用通用关系,该模型将配料模型连接到餐具室外的应用程序

我可以在Django中为LinkedItem的管理员制作一个过滤器。现在我希望通用关系另一端的内容,比如一个名为Bakery的应用程序,能够对配料进行过滤

餐具室 models.py

面包房 管理员

有什么想法吗?

一个解决方案是为LinkedItem创建一个链接,并对显示设置一些限制,以避免重复,如下所示:

from django.contrib.contenttypes.admin import GenericTabularInline

class LinkedItemAdmin(GenericTabularInline):
    model = LinkedItem

    # choosing the field and display
    field = ['ingredient']
    filter_horizontal = ['ingredient']

    # These help with removing some potential issues in the admin
    extra = 0
    min_num = 1
    max_num = 1
    can_delete = False
然后在CakeAdmin中,我可以这样做,使成分显示出来

class CakeAdmin(admin.ModelAdmin):
    inlines = [LinkedItemAdmin]

关于如何实现这些场景,你有什么想法吗?@dipakhandranp我最近确实想出了一种方法。刚刚添加了一个带有细节的答案。是的,对我的场景也有些帮助。谢谢。:)
from django.contrib.contenttypes.admin import GenericTabularInline

class LinkedItemAdmin(GenericTabularInline):
    model = LinkedItem

    # choosing the field and display
    field = ['ingredient']
    filter_horizontal = ['ingredient']

    # These help with removing some potential issues in the admin
    extra = 0
    min_num = 1
    max_num = 1
    can_delete = False
class CakeAdmin(admin.ModelAdmin):
    inlines = [LinkedItemAdmin]