Böyle bir sınıf üzerinde login_required
dekoratör kullanamazsınız
Views.py:
İşte benim kod. method_decorator
'u kullanmanız gerekir. Django 1.9+ üzerinde, sınıf dekore edebilirsiniz:
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
@method_decorator(login_required, name='dispatch')
class LiveBids(LoginRequiredMixin, ListView):
...
önceki sürümlerinde, dispatch
geçersiz kılmak ve orada method_decorator
kullanmak gerekir.
class LiveBids(LoginRequiredMixin, ListView):
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(LiveBids, self).dispatch(*args, **kwargs)
kolay çözüm örneklerde, ben LiveBids
görünümü değiştirildi ki
from django.contrib.auth.mixins import LoginRequiredMixin
class LiveBids(LoginRequiredMixin, ListView):
model = Post
template_name = 'loggedin_load/live_bids.html'
def get_queryset(self):
return Post.objects.all().prefetch_related('bids').filter(user=self.request.user)
Not tavsiye maç için (1.9+ Django ile çalışır) yerine dekoratör LoginRequiredMixin
kullanmaktır Django stili. URL modelini de güncellemeniz gerekir.
Şişesi için bunu yapmanın bir yolu var mı? –
@JohnSmith bu sorunun flaskla ilgisi yok. Lütfen yeni bir soru sorun. – Alasdair
[done] (https://stackoverflow.com/questions/46932366/how-to-use-login-required-with-a-class-in-flask) –