Возможен ли фильтр модели Django по LogEntry пользователем, добавленным в ModelAdmin? - PullRequest
0 голосов
/ 29 сентября 2019

Я работаю с сайтом блога.Я хочу добавить некоторые функции, такие как сообщение администратора фильтра может изменить только добавленный пользователь.Я хочу использовать встроенную в Django модель LogEntry.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 29 сентября 2019

Вы можете переопределить метод ModelAdmin get_queryset в следующих строках:

из django.contrib.admin.models import ADDITION из django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    # ...
    def get_queryset(self, request):
        qs = super(MyModelAdmin, self).get_queryset(request)
        ct = ContentType.objects.get_for_model(MyModel)
        qs = qs.filter(id__in=list(
                 LogEntry.objects.filter(content_type=ct, 
                                         action_flag=admin.models.ADDITION, 
                                         user=request.user)\
                                 .values_list('object_id', flat=True)))
        return qs

Это сузит объекты, к которым администратор имеет доступ, к объектам, созданным текущим вошедшим пользователем.

...