使用this question about combining Django allauth signup and login forms和this blog post about the same,我創建了一個聯合註冊/登錄視圖,可以在本地正常工作。但是,當我將相同的代碼放到暫存服務器上時,出現此錯誤:Django allauth聯合註冊/登錄視圖拋出「全球名稱'get_form_class'未定義」
File "./members/views.py", line 209, in get_context_data
context['login_form'] = get_form_class(app_settings.FORMS, 'login', self.login_form)
NameError: global name 'get_form_class' is not defined
我不知道爲什麼。下面是從views.py應用代碼:
from allauth.account.views import *
from allauth.account.forms import LoginForm, SignupForm
class JointSignupLoginView(LoginView):
form_class = SignupForm
login_form = LoginForm
def get_context_data(self, **kwargs):
context = super(JointSignupLoginView, self).get_context_data(**kwargs)
context['login_form'] = get_form_class(app_settings.FORMS, 'login', self.login_form)
return context
signup = JointSignupLoginView.as_view()
下面是從urls.py應用代碼:
url(r'^accounts/signup-or-login', JointSignupLoginView.as_view(template_name="account/signup_or_login.html"), name='signup_or_login'),
下面是從signup_or_login.html應用代碼:
<form id="signup_form example-form" method='post' action="{% url 'account_signup' %}" id="signup">
{% csrf_token %}
{{ form|bootstrap }}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}"
value="{{ redirect_field_value }}"/>
{% endif %}
<div class="form-actions col-sm-6 col-sm-offset-3">
<button class="btn btn-primary btn-block continue-button" type="submit">{% trans "Sign Up" %}</button>
</div>
</form>
<form class="login" method='post' action="{% url 'account_login' %}">
{% csrf_token %}
{{ login_form|bootstrap }}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<div class="form-actions col-sm-6 col-sm-offset-3">
<button class="btn btn-primary btn-block continue-button" type="submit">{% trans "Log In" %}</button>
</div>
<div class="forgot-pass-container">
<a href="{% url 'account_reset_password' %}" id="forgot_pass">Forgot Password?</a>
</div>
</form>
我意識到JointSignupLoginView不是從SignupView繼承,也許它應該,所以我補充說,但錯誤仍然存在。我也嘗試從allauth.account.forms中導入*,但這也不起作用。也許app_settings.FORMS的路徑在分級上不正確(我不知道爲什麼它會在那裏不同)?我怎樣才能擺脫這個錯誤,並讓這個視圖在分期上工作?