在 Python Django 中,我想运行这两个语句,如果 else 是如果电子邮件显示它或者如果用户名显示它 [重复]

Posted

技术标签:

【中文标题】在 Python Django 中,我想运行这两个语句,如果 else 是如果电子邮件显示它或者如果用户名显示它 [重复]【英文标题】:In Python Django I want to run both the statements on if else that is if email is taken show it or if username show it [duplicate] 【发布时间】:2021-08-16 18:17:57 【问题描述】:

我有一个 html 表单填写注册页面,我在其中显示是否存在任何用户名或电子邮件,如果存在,则显示用户名,如果存在电子邮件,它将显示电子邮件,但问题是即使我在 html 表单的电子邮件字段中提供电子邮件,它说用户名已被使用,但不是电子邮件我尝试了其他,如果类似声明它没有工作,用户名被使用的工作正常但不是电子邮件。这里我的意思是两个语句应该单独运行

如果有人知道请帮忙

这是我的观点.py

def Register(request):
    try:
        if request.method == 'POST':
            username = request.POST.get('username')
            email = request.POST.get('email')
            password = request.POST.get('password')

        try:
            if User.objects.filter(username = username).first():
                messages.success(request, 'Username is taken.')
                return redirect('/register/')

            if User.objects.filter(email = email).first():
                messages.success(request, 'Email is taken.')
                return redirect('/register/')
            
            user_obj = User(username = username , email = email)
            user_obj.set_password(password)
            user_obj.save()
    
            profile_obj = Profile.objects.create(user = user_obj )
            profile_obj.save()
            return redirect('/login/')

        except Exception as e:
            print(e)

    except Exception as e:
            print(e)

    return render(request , 'register.html')

【问题讨论】:

这似乎是你今天第三次问同样的问题了...(1.***.com/questions/67732997/…2.***.com/questions/67736247/…),你可以简单地@987654323 @您的问题,如果您想添加一些说明等。不要一次又一次地发布相同的问题。 我本来打算发布一个答案,但是当你第二次问这个问题时,基本上有人已经发布了我要发布的答案。 我不知道该怎么做我所有的事情 你能帮我解决这个问题@Abdul Aziz Barkat @JamesRowling 我试图给你一个非常简单的想法,告诉你你的问题在哪里。在下面检查我的答案。 【参考方案1】:

问题是你指定一个又一个if。要更熟悉代码流,不妨尝试在 http://pythontutor.com/visualize.html#mode=edit 中运行您的代码。

如果你尝试这样的事情:

def x(y):
    if y > 5:
        return True
    if y > 10:
        return False

print(x(12))

它永远不会返回 False,因为即使数字大于 10,它也会在第一个 if 条件处停止。

【讨论】:

以上是关于在 Python Django 中,我想运行这两个语句,如果 else 是如果电子邮件显示它或者如果用户名显示它 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Django,可以运行两个不同的版本吗?

docker中的镜像中运行Django项目

如何在 Django 模板中嵌套或联合使用两个模板标签?

Django入门

在 Python 3 上的 Django 中使用 Google 站点验证 API

Django 相关模型无法解析