Django ModelAdmin.get_formsets_with_inlines, чтобы ограничить данные, специфичные для текущего пользователя / владельца - PullRequest
0 голосов
/ 14 марта 2019

Чтобы ограничить доступ к основным данным модели для текущего зарегистрированного пользователя, я использовал набор запросов в admin.py, подобный следующему:

@admin.register(MyModel)
class MyModel(admin.ModelAdmin):
def get_queryset(self, request):
   qs = super().get_queryset(request)
   if request.user.is.superuser:
        return qs
   return qs.filter(resource_owner=request.user)
...

Владелец - это имя поля, в котором хранится текущий вошедший в систему пользователь, и это работает как чудо! Однако это, очевидно, не работает со строками.

Я искал документацию и (может быть ошибочным, но) понимаю, что для этого можно использовать ModelAdmin.get_formsets_with_inlines. Будучи стажером, я не уверен, как применить этот набор форм, чтобы ограничить доступ только к данным встроенной модели владельцев, так же, как вышеуказанный набор запросов применяется к основной модели.

Документация цитируется ниже как:

For example if you wanted to display a particular inline only in the change view, you could override get_formsets_with_inlines as documentedfollows:

    class MyModelAdmin(admin.ModelAdmin):
        inlines = [MyInline, SomeOtherInline]

        def get_formsets_with_inlines(self, request, obj=None):
            for inline in self.get_inline_instances(request, obj):
                # hide MyInline in the add view
                if not isinstance(inline, MyInline) or obj is not None:
                    yield inline.get_formset(request, obj), inline

Я пытался применить описанный выше набор форм, но слишком неопытен, чтобы понять это. Если бы кто-нибудь мог помочь мне в том, как применить набор форм для встроенных функций и ограничить данные для владельца, я был бы очень признателен. Все остальное в моем приложении для новичков работает, кроме этого ... и я действительно застрял.

Для ясности, владелец - это поле в моей встроенной модели, в котором хранится текущий вошедший в систему пользователь, но без данных, ограничивающих набор форм, пользователь в настоящее время может видеть данные, сохраненные всеми в встроенной модели.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...