Как мне скомбинировать Django 'LoginRequiredMixin' и Инструменты формы '' FormPreview '? - PullRequest
0 голосов
/ 04 июня 2018

LoginRequiredMixin прекрасно работает с другими классами.Также отлично работают инструменты формы FormPreview.Но когда я пытаюсь использовать оба вместе, LoginRequiredMixin игнорируется.

Это даже в том случае, если я использую самый простой пример из инструментов формы и Djangoдокументация .

Две вещи, которые я нахожу странными (но причина этого не обязательна):

  • "Этот миксин должен находиться в крайней левой позиции в списке наследования."Это звучит так, как будто есть какой-то внутренний взлом, который ломается, если кто-то делает что-то нерегулярное.Нет объяснения, почему.
  • Представление «Инструменты формы» должно вызываться само по себе, а не метод .as_view(), который опять не соответствует стандарту.

Это ошибка?Что я могу сделать?

1 Ответ

0 голосов
/ 04 июня 2018

FormPreview не является общим представлением на основе классов, поэтому его нельзя использовать с такими миксинами, как LoginRequiredMixin.

. Вы можете использовать декоратор login_required, когдавключите экземпляр предварительного просмотра формы в шаблоны URL:

from django.contrib.auth.decorators import login_required

url_patterns = [
    url(r'^form-handler/$', login_required(MyFormPreview(SomeModelForm))),
]
...