[英]Checking if form input exists [Django]
我有一个Django表单,用户可以在其中输入一个输入。 提交后,会将他们带到与其输入关联的URL。
该数据库包含user_input
和associated_url
领域。
user_input
具有值unique=True
设置。 当输入重复的输入时,网站上将显示以下内容。即使我没有对此进行设置, This value user_input already exists in the database
。 这可能是form.is_valid()
吗?
因此,它可以立即识别重复的值,但是我正在尝试对其进行设置,以便如果输入重复的值,则它将把用户带到该值的associated_url
。
即
现有数据库表:
user_input associated_url
hello https://stackoverflow.com
如果用户再次向表单输入hello
,则会立即将他们带到https://stackoverflow.com
而不是显示This value user_input already exists in the database
码:
def Primary(request):
form = Form()
if request.method == 'POST':
form = Form(request.POST)
if form.is_valid():
... saving to database, redirect etc.
我需要能够检查输入值是否重复。 如果是,则从与重复的user_input
条目相同的行中获取associated_url
,并在那里重定向用户。
为此,我尝试在form.is_valid
条件中添加else
语句,但这似乎是一种不好的做法,因为它会尝试重定向,而不考虑error(?),并且因为我不知道如何获取associated_url
关联的form.is_valid
输入值。
您有多种选择,但是其中一些是。
param = request.POST["param"]
if YourModel.objects.get(param=param):
redirect('/myurl/{}'.format(param))
else:
if form.is_valid():
# other code
或为您使用的表单编写自己的自定义clean()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.