【发布时间】:2019-07-31 10:27:23
【问题描述】:
我正在尝试在 postgres 数据库中使用 django 保存来自 HTML 的名称和电子邮件,在操作标记中,提到了函数名称,但使用该函数时,django 正在将该数据传递到具有相同函数名称的新页面
HTML
<form class="newsletter_form d-flex flex-md-row flex-column align-items-start justify-content-between" action="subscribe" method="post">
{%csrf_token%}
<div class="d-flex flex-md-row flex-column align-items-start justify-content-between">
<div>
<input name="subname" type="text" class="newsletter_input newsletter_input_name" id="newsletter_input_name" placeholder="Name" required="required">
<div class="input_border"></div>
</div>
<div>
<input name="subemail" type="email" class="newsletter_input newsletter_input_email" id="newsletter_input_email" placeholder="Your e-mail" required="required">
<div class="input_border"></div>
</div>
</div>
<div><button type="submit" class="newsletter_button">subscribe</button></div>
</form>
views.py
def subscribe(request):
if request.method == 'POST':
subname = request.POST['subname']
subemail = request.POST['subemail']
sub = User.objects.create_user(subname=subname, subemail=subemail)
sub.save();
return redirect('/')
else:
return redirect('/')
url.py
from django.urls import path
from . import views
urlpatterns = [
path("register", views.register, name='register'),
path("login", views.login, name='login'),
path("logout", views.logout, name='logout'),
path("subscribe", views.subscribe, name='subscribe')
]
这是错误
【问题讨论】:
-
您必须在模板中使用
{% url 'subscribe' %}提供操作 -
与登录和注册页面相同的事情我没有使用 {% url 'login' %}
-
如果您使用 django 默认用户模型登录/注册,那么您不必提供 action.django 自己处理。
-
@user11418935 当我使用 action="{% url 'subscribe' %}" imgur.com/a/IrflF98 时出现此错误
-
为什么不尝试使用 django 提供的
ModelForm??
标签: django forms django-forms