Пользовательский запрос для поля select в админке Djnago

можно ли сделать пользовательский запрос для этого поля?

У меня много пользователей, мне нужно отфильтровать их по группам, чтобы уменьшить количество вариантов.

панель администратора - выбрать вход

Я не нашел ничего, кроме создания пользовательского запроса для целых моделей.

Если вы хотите сделать это в рамках всего приложения, вы можете использовать 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)

Note: It is normally better to make use of the settings.AUTH_USER_MODEL [Django-doc] to refer to the user model, than to use the User model [Django-doc] directly. For more information you can see the referencing the User model section of the documentation [Django-doc].

Вернуться на верх