繁体   English   中英

检查表单输入是否存在[Django]

[英]Checking if form input exists [Django]

我有一个Django表单,用户可以在其中输入一个输入。 提交后,会将他们带到与其输入关联的URL。

该数据库包含user_inputassociated_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM