Django在用户模型中显示了多对多关系

时间:2019-08-03 11:54:16

标签: python django django-models

这是模型:

class Product(models.Model):
   title = models.CharField(max_length=60)
   price = models.DecimalField(max_digits=6, decimal_places=2)
   images = ArrayField(models.TextField())
   user = models.ManyToManyField(User, related_name='products')

如何在管理面板中显示该关系,以便当我进入管理面板中的“用户”表单时,可以看到与该用户相关的产品。

1 个答案:

答案 0 :(得分:0)

您可以为用户模型构造一个ModelAdmin类。为此,您首先要“取消注册”由Django定义的注册,然后注册一个新的UserAdminWithProducts

例如:

# myapp/admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

admin.site.unregister(User)

@admin.register(User)
class UserAdminWithProducts(UserAdmin):
    filter_horizontal = UserAdmin.filter_horizontal + ('products',)

有关更多信息,请参见documentation on The Django admin site [Django-doc]