Javascript 用于用户登录/注册的Django模式-表单呈现问题
我正在尝试创建一个基于JS/Bootstrap的登录/注册模式: 我只是在寻找指导,因为我在模态上显示表单输入时遇到了问题。模态会在点击后弹出,但是表单输入不会出现 如果我访问accounts/sign_in或accounts/sign_up页面并单击其中一个按钮,那么我确实会得到带有表单输入的弹出窗口(大多数情况下) 因此,我想我一定是在登录表单视图中处理渲染不当了 我根据一些指导创建了这个“登录表单”视图 我的网址是:Javascript 用于用户登录/注册的Django模式-表单呈现问题,javascript,jquery,django,Javascript,Jquery,Django,我正在尝试创建一个基于JS/Bootstrap的登录/注册模式: 我只是在寻找指导,因为我在模态上显示表单输入时遇到了问题。模态会在点击后弹出,但是表单输入不会出现 如果我访问accounts/sign_in或accounts/sign_up页面并单击其中一个按钮,那么我确实会得到带有表单输入的弹出窗口(大多数情况下) 因此,我想我一定是在登录表单视图中处理渲染不当了 我根据一些指导创建了这个“登录表单”视图 我的网址是: //urls.py app_name = "accounts" u
//urls.py
app_name = "accounts"
urlpatterns = [
url(r'sign_in/$', views.login_form, name='sign_in'),
url(r'sign_up/$', views.login_form, name='sign_up'),
这是我的layout2.html文件中的相关模式代码:
<div class="form loginBox">
<form method="POST" action="{% url 'accounts:sign_in' %}">
{% csrf_token %}
<input type="hidden" name="form_name" value="login_form">
{{ login_form.as_p }}
<input type="submit" onclick="loginAjax()">
</form>
</div>
</div>
</div>
<div class="box">
<div class="content registerBox" style="display:none;">
<div class="form">
<form method="POST" action="{% url 'accounts:sign_up' %}" html="{:multipart=>true}" data-remote="true" accept-charset="UTF-8">
{% csrf_token %}
<input type="hidden" name="form_name" value="signup_form">
{{ signup_form.as_p }}
<input type="submit" onclick="loginAjax()">
</form>
</div>
--------------查看最新信息---------------
以下是我单击“登录”时在主页上的外观:
这就是我进入帐户/登录并单击登录按钮时的情况:
更新这里是我的更新主视图,添加了
class Home(generic.TemplateView):
model = Deal
template_name = 'test.html'
def get_context_data(self, **kwargs):
context = super(Home, self).get_context_data(**kwargs)
today = datetime.datetime.today()
deals = Deal.objects.all()
context['deals'] = deals.filter(Q(date_expires__gte=today))
categories = Category.objects.all()
context['categories'] = categories
signup_form = UserCreationForm()
login_form = AuthenticationForm()
context["signup_form"] = signup_form
context["login_form"] = login_form
return context
问题是您正在将
def login_表单(请求):
函数附加到sig_中的,注册视图中,而不是在主页中添加,它应该可以按照您的预期工作
url(r'^$', views.login_form, name='')
由于您已经有了视图home
,只需添加到上下文中:
signup_form = UserCreationForm()
login_form = AuthenticationForm()
context["signup_form"] = signup_form
context["login_form"] = login_form
你能展示你得到了什么吗?你也尝试过不同的浏览器吗?只是发布了我看到的实际视图…并且在不同的浏览器(edge)中尝试过,看起来是一样的..好的,但是我已经有了一个不同的主页视图,它呈现了所有的主页内容。我该如何使其工作?在这种情况下,只需通过渲染表单即可。layout2.html
是否与home
页面的模板相同?请记住,在模板中添加{{login\u form.as\u p}}OK,仍然有点困惑(抱歉),但是的,my home.html只是扩展了layout2.html模板,以便包含模式代码。我有一个Home视图,它正在呈现Home.html模板——我应该如何准确地包含登录表单呢?如果您正在扩展layout2.html
只需传递表单,就像context={“signup\u form”:signup\u form,“login\u form”:login\u form}返回呈现(请求,'Home.html',context)
ok..如果我认为我理解正确,我只是将以前的登录表单视图代码全部移到了我的“主页”视图中。我在原始帖子的代码末尾粘贴了此更新。我还将模式表单中的操作更改为{%url'home'%}
,不幸的是仍然存在相同的问题
url(r'^$', views.login_form, name='')
signup_form = UserCreationForm()
login_form = AuthenticationForm()
context["signup_form"] = signup_form
context["login_form"] = login_form