我有一個基于類的視圖,我想為其提供一些背景關系,但我不知道如何實作以下是 views.py
class Dashboard(LoginRequiredMixin, View):
def get(self, request):
if request.user is not None and len(request.user.payment_set.all()):
if request.user.is_active and request.user.payment_set.first().active:
print(eligible_to_review(self.request))
return render(request, 'main.html')
else:
return redirect('home')
else:
return redirect('membership')
如何將背景關系傳遞給此視圖以便在 html 檔案中使用它
uj5u.com熱心網友回復:
我認為最干凈的方法是用 TemplateView 替換 View 的繼承 - 您可以提供一個 get_context_data 方法來執行您需要的任何額外背景關系內容。
理想情況下,您不需要提供 get() 但由于您在那里有一些帶有重定向的額外邏輯,因此您可能需要那里。我猜想您可能希望qualified_to_review() 位于get_context_data 中,因為不清楚為什么要列印它(到哪個終端?)。還考慮到 LoginRequiredMixin 的使用,您可以確信當您到達 get() 時 request.user 已設定且處于活動狀態 - 因此測驗的這些部分是冗余的。
class Dashboard(LoginRequiredMixin, TemplateView):
template_name="main.html"
def get_context_data(self, **kwargs):
context=super().get_context_data(**kwargs)
context["whatever"]="Some stuff" # This is where you add extra context you need.
return context
def def get(self, request, *args, **kwargs):
if len(request.user.payment_set.all()): #request.user is definitely set here!
if request.user.payment_set.first().active: #request.user is also active!
print(eligible_to_review(self.request))
return super().def get(request, *args, **kwargs)
else:
return redirect('home')
else:
return redirect('membership')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327173.html
標籤:姜戈 django-views
下一篇:Django將字串轉換為整數
