【发布时间】:2020-05-19 14:00:14
【问题描述】:
目前,这两个打印语句要么记录“无”,要么根本不显示。即使我只是在 form.is_valid 条件下打印(“你好”),我也看不到它。不知道我做错了什么,但数据正在保存到 django 管理员中,但现在不是......
def create_user_account(request, *args, **kwargs):
form = UserAccountForm(request.POST or None)
print(request.POST.get('account_email'))
if form.is_valid():
print(form['account_email'].value())
form.save()
form = UserAccountForm()
context = {
'form': form
}
return render(request, 'registration/register_user.html', context)
和html:
{% block content %}
<form action="{% url 'home' %}" method='POST'> {% csrf_token %}
{{form.as_p}}
<input type='submit' value='Submit'/>
</form>
{% endblock %}}
编辑:当我发送奇怪的请求时,我确实得到了“POST / HTTP/1.1”200。我没有看到预期的 201 或 302。
forms.py:
class UserAccountForm(forms.ModelForm):
class Meta:
model = UserAccount
fields = [
'first_name',
'last_name',
'account_email',
'country'
]
class UserAccount(models.Model):
first_name = models.CharField(max_length=30, null=False)
last_name = models.CharField(max_length=30, null=False)
account_email = models.EmailField(max_length = 254, null=False)
country = models.CharField(choices=COUNTRY_CHOICES, null=False,
max_length=75)
activated = models.BooleanField(default=False)
继续:
所以我删除了数据库,进行了迁移,并且该表看起来正常。我试图保存数据和同样的问题?但我也尝试通过管理站点手动添加信息并收到此错误: /admin/profiles/useraccount/add/ 处的 OperationalError 没有这样的表:main.auth_user__old
所以我更新到 Django 3.0.6,这解决了问题 - 现在可以手动添加,但仍然无法通过表单添加。
【问题讨论】:
-
如果您在表单无效时添加 else 语句以打印某些内容 - 会出现吗?
-
我希望这会奏效。它最初在页面呈现时出现,但是当我保存表单时,我得到
<WSGIRequest: POST '/'> [19/May/2020 14:19:00] "POST / HTTP/1.1" 200 845 -
您能发布您的 forms.py 文件吗?我曾经有一个表格,其中并非包含模型的所有必填字段
-
@Sven 添加 forms.py - 感谢您的帮助
-
在
if form.is_valid():之前尝试在终端中像这样输出错误:for field in form: for error in field.errors: print(error)并查看终端中的表单有什么问题
标签: django