是否可以对该字段进行自定义查询?
我有很多用户,我需要按组过滤以减少选择数量。
除了对整个模型进行自定义查询之外,我没有找到任何东西。
任何例子对我来说就足够了。
我使用内置的组模型。 假设,我只想在下面的模型的“Director”组的“用户”字段中看到。
class Invitation(models.Model):
school = models.ForeignKey(School, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
目前,我使用默认值: admin.site.注册(邀请)
limit_choices_to=…
[Django-doc]:
class Invitation(models.Model):
school = models.ForeignKey(School, on_delete=models.CASCADE)
user = models.ForeignKey(
User,
on_delete=models.CASCADE,
limit_choices_to={'groups__name': 'Director'},
)
如果您只想在
ModelAdmin
中应用此功能,您可以通过覆盖 .formfield_for_foreignkey(…)
[Django-doc]: 来限制查询集
@admin.site.register(Invitation)
class InvitationAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'user':
kwargs['queryset'] = User.objects.filter(groups__name='Director')
return super().formfield_for_foreignkey(db_field, request, **kwargs)
[Django-doc] 来引用用户模型比使用settings.AUTH_USER_MODEL
模型 [Django- doc]直接。有关更多信息,您可以参阅文档的引用User
模型部分[Django-doc]。User