如果我发布值保存在数据库中的值,则如果值重复,则显示类似值无法通过渲染html page进行复制的消息。在我的情况下,值存储在数据库中,但如果输入任何重复值,则会引发错误。输入任何重复值时如何显示消息。views.py文件中是否有任何方法method
1062, "Duplicate entry 'django_post' for key 'title'"
这里是models.py代码
class Post(models.Model):
title= models.CharField(max_length=100, unique=True)
content= models.TextField()
view.py文件
def createpost(request):
if request.method == 'POST':
if request.POST.get('title') and request.POST.get('content'):
post = Post()
post.title = request.POST.get('title')
post.content = request.POST.get('content')
post.save()
return render(request, 'emp.html')
emp.html档案
<html lang="en">
<head>
<title>Create a Post </title>
</head>
<body>
<h1>Create a Post </h1>
<form action=" " method="POST">
{% csrf_token %}
Title: <input type="text" name="title"/><br/>
Content: <br/>
<textarea cols="35" rows="8" name="content">
</textarea><br/>
<input type="submit" value="Post"/>
</form>
</body>
</html>
这是我想通过html页面发布数据后要给html页面的html文件
plicate.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Duplicate values are entered</h1>
</body>
</html>
您应该更改HTML页面:
替换您的代码:
return render(request, 'emp.html')
至:
return render(request, 'inserted.html')
要么
在里面添加return语句:
if request.POST.get('title') and request.POST.get('content'):
......
return render(request, 'inserted.html')
models.py
class Post(models.Model):
title= models.CharField(max_length=100, unique=True)
content= models.TextField()
当您定义title
必须是唯一的时,因此您需要处理重复的异常并在UI端显示错误消息。
view.py
在try除了块之内编写您的保存邮政编码:
try:
post = Post()
post.title = request.POST.get('title')
post.content = request.POST.get('content')
post.save()
except IntegrityError as e:
# add your error message
该链接将帮助您如何添加和显示错误消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句