如何将用户列表添加到 django 管理面板

How to add list of users to django admin panel

我有一个 start_dateend_date 的模型。我想在底部添加一个用户列表,以便管理员可以从与此模型关联的用户列表中进行选择。

这是模型目前在管理面板中的样子

我的模型在 models.py

中看起来像这样
class MyPeriod(ValidateOnSaveMixin, models.Model):
    start_date = models.DateField(unique=True)
    end_date = models.DateField()

admin.py 中,我尝试像这样添加 filter_horizontal 但它给了我错误

class MyPeriodAdmin(admin.ModelAdmin):
    list_display = ('start_date', 'end_date',)
    filter_horizontal = ('user',)

The value of 'filter_horizontal[0]' refers to 'user', which is not an attribute of 'MyPeriod'.

您当前的模型不包含期间和用户之间的关联。您必须指定与 User 模型的 ForeignKey 关系,例如:

from django.conf import settings
...
class MyPeriod(ValidateOnSaveMixin, models.Model):
    start_date = models.DateField(unique=True)
    end_date = models.DateField()
    user = models.ForeignKey(settings.AUTH_USER_MODEL)

在此添加之后(并应用迁移以反映对实际数据库的更改),您将能够将 User 分配给您的 MyPeriod 模型。