Проверка пользователя в Class Based View - Python

Узнай цену своей работы

Формулировка задачи:

Как проверить авторизован ли пользователь что бы дать или не дать ему доступ к форме привязанной к CreateView я уже и так и сяк, в доках написано мол юзайте миксины юзаем, но отображается пустой темплейт, если просто через deff get делать и там проверятьif not request.user.is_autheauthenticated() то опять же редиректить оно редиректит на логин но как отобразить все как надо если пользователь авторизован не понятно то ли пустое опять получается, помогите. Сама вьюха
Листинг программы
  1. class LotAddView(generic.CreateView):
  2. model = Lot
  3. template_name = 'lots/add_lot.html'
  4. form_class = LotAddForm
  5. def form_valid(self, form):
  6. form.instance.author = self.request.user
  7. return super(LotAddView, self).form_valid(form)
Сама форма
Листинг программы
  1. class LotAddForm(forms.ModelForm):
  2. name = forms.CharField(
  3. label="Наименование",
  4. widget=forms.TextInput,
  5. max_length=255
  6. )
  7. description = forms.CharField(
  8. label="Описание",
  9. widget=forms.Textarea,
  10. max_length=1500
  11. )
  12. class Meta:
  13. model = Lot
  14. fields = ('name', 'description', 'type_auction', 'time_life', 'price', 'category',)
В url инициализируем через as_view:
Листинг программы
  1. url(r'^add/$', views.LotAddView.as_view(), name='add'),

Решение задачи: «Проверка пользователя в Class Based View»

textual
Листинг программы
  1. from django.utils.decorators import method_decorator
  2. from django.contrib.auth.decorators import login_required, user_passes_test
  3.  
  4. class LotAddView(generic.CreateView):
  5.    
  6.     ...
  7.  
  8.     @method_decorator(login_required(login_url='/accounts/login/'))
  9.     def dispatch(self, request, *args, **kwargs):
  10.         return super(LotAddView, self).dispatch(request, *args, **kwargs)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы