Django क्लास आधारित दृश्य get_context अनुरोध नहीं ढूंढ रहा है - पायथन, django, django-allauth

मैं "django allauth का संपादन कर रहा हूँ जब उपकरण मोबाइल हो, तो मैं" "दोनों का उपयोग करने की कोशिश करता हूँ django-mobile request.mobile तथा request.GET.get("mobile") दोनों डॉन 'टी काम यूआरएल है /accounts/signup/?mobile=true यहाँ मैं क्या है "अब तक मिल गया है

class LoginView(RedirectAuthenticatedUserMixin,
AjaxCapableProcessFormViewMixin,
FormView):
form_class = LoginForm
template_name = "account/login.html"
success_url = None
redirect_field_name = "next"

def form_valid(self, form):
success_url = self.get_success_url()
return form.login(self.request, redirect_url=success_url)

def get_success_url(self):
# Explicitly passed ?next= URL takes precedence
ret = (get_next_redirect_url(self.request,
self.redirect_field_name)
or self.success_url)
return ret

def get_context_data(self, **kwargs):
ret = super(LoginView, self).get_context_data(**kwargs)
signup_url = passthrough_next_redirect_url(self.request,
reverse("account_signup"),
self.redirect_field_name)
redirect_field_value = self.request.REQUEST 
.get(self.redirect_field_name)
if self.request.GET.get("mobile"):
self.template_name = "mobile/sign_up.html"
ret.update({"signup_url": signup_url,
"site": Site.objects.get_current(),
"redirect_field_name": self.redirect_field_name,
"redirect_field_value": redirect_field_value})
return ret

उत्तर:

जवाब के लिए 0 № 1

यदि आप ओवरराइड करते हैं .get_template_names(…) के बजाय .get_context_data(…), आपको बहुत क्लीनर समाधान मिलेगा और टेम्पलेट नाम को सटीक बिंदु पर बदलने का मौका मिलेगा।


जवाब के लिए 0 № 2

आपके पास अनावश्यक स्थान प्रतीक है:

redirect_field_value = self.request.REQUEST 
.get(self.redirect_field_name) #       ^ space should be removed!

संबंधित सवाल
सबसे लोकप्रिय