/ / Про успішне перенаправлення URL-адреси не працює для користувацького перегляду в django-allauth - django, django-views, django-allauth

На успіх URL-адреса переспрямування не працює для користувацького перегляду в django-allaut - django, django-views, django-allaut

Я створив власний клас LocalSignup, якийрозширює базовий клас django-allauth SignupView за допомогою власної форми та власної логіки перевірки. Проблема полягає в тому, що при успіху я не можу переконати погляд на що-небудь, крім django LOGIN_REDIRECT_URL у моїх settings.py. Я включив a success_url поле в поданні на основі мого класу; Я спробував замінити get_success_url функція (див. нижче); Я також намагався передати своє переспрямування на успіх LocalSignup.as_view(success_url="/add_account_select/"). Жоден не працював. Будь-які ідеї щодо того, що я роблю не так?

class LocalSignup(SignupView):
form_class = AllAuthUserForm
template_name = "signup/social_login.html"
success_url = "/add_account_select/"  #reverse_lazy("add_account_select")

def get_success_url(self):
return "/add_account_select/"  #reverse("add_account_select")

def dispatch(self, request, *args, **kwargs):
# self.sociallogin = request.session.get("socialaccount_sociallogin")
return super(LocalSignup, self).dispatch(request, *args, **kwargs)

def form_valid(self, form):
ret = super(LocalSignup, self).form_valid(form)
### MY FORM VALIDATION LOGIC
return ret

def get_context_data(self, **kwargs):
ret = super(LocalSignup, self).get_context_data(**kwargs)
ret.update(dict(username=self.sociallogin.account.user.first_name,
photo_url=self.sociallogin.account.get_avatar_url() ))
return ret

Відповіді:

1 для відповіді № 1

У поданні за замовчуванням, якщо у вигляді подання для входу є поле "наступне", allauth автоматично перенаправить на нього.

<input id="login_redirect" type="hidden" name="next" value="#" />

повна форма

      <form method="POST" action="{% url "account_login" %}">
{% csrf_token %}
{{form}}
<input  type="hidden" name="next" value="/add_account_select/" />
<button type="submit" class="btn btn-primary">Sign IN</button>
</form>

0 для відповіді № 2

Просто для того, щоб надати актуальну відповідь:

Використовуючи django-allauth = 0.30.0, наступне добре працює в views.py

from allauth.account.views import SignupView


class LocaLSignupView(SignupView):
success_url = "/page/to/redirect/to"