如何将用户列表添加到 django 管理面板
How to add list of users to django admin panel
我有一个 start_date
和 end_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
模型。
我有一个 start_date
和 end_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
模型。