django视图中的elif条件

Posted

技术标签:

【中文标题】django视图中的elif条件【英文标题】:elif condition in django view 【发布时间】:2017-06-02 07:20:58 【问题描述】:

我有根据我提供的数据过滤对象的视图函数,如果数据库中不存在该过滤对象,它会将对象添加到 DB(我还没有编写添加函数)。如果它已经存在则显示错误。我正在使用 ajax 发布请求从模板中获取数据。

#view.py
@csrf_exempt
def setUserInDB(request):
if request.method=="POST":
    if request.POST.get('pname','u_id'):
        pname = request.POST.get('pname')
        u_id = request.POST.get('u_id')
        user = userprofile.objects.get(pk=u_id)
        pid = Project.objects.get(title=pname)
    else:
        u_id = None
        pname = None

    if request.POST.get('db_id','chkbox'):
        db_id = request.POST.get('db_id')
        db = Db_profile.objects.get(pk=db_id)
        chkbox = request.POST.get('chkbox')
        print chkbox
    else:
        db_id = None
        chkbox = None

if Projectwiseusersetup.objects.filter(userid=user,project_id=pid, 
db_profileid=   db,setasdefaultproject=chkbox): 
    print "already exist"

elif (((Projectwiseusersetup.objects.filter(userid = user,project_id = 
pid,db_profileid=db,setasdefaultproject=False)).exists()) and 
(chkbox==True)):
    print "FtoT"


elif Projectwiseusersetup.objects.filter(userid = user,project_id = 
pid,db_profileid=db,setasdefaultproject=True) and chkbox==False:
    print "TtoF"
else:
    print "aaaa"

user,pid,db,chkbox ---- 我从 ajax 发布请求中获取这些数据, userid, project_id, db_profileid, setasdefaultproject(boolean) ----- 模型字段

当我尝试检查我的 elif 条件时,我在控制台“aaaa”(其他部分)中得到输出。 elif 有什么问题?

【问题讨论】:

还是不清楚!请清楚地提及您想要实现的目标?您收到了 ajax 请求,并基于此创建了一个过滤器和 print "FtoT" ? 清楚地解释问题并发布完整视图。 我的 elif 函数是否正确? @拉贾西蒙 你可以查看我的 exc。这是一个简单的版本(我不检查你的条件) 【参考方案1】:

这里是前任:

x = 4

if x == 1:
    print ("1")
elif (x == 2):
    print("2")
elif (x == 3):
    print("3")
else:
    print("4")

【讨论】:

request.POST.get('pname','u_id') 你应该将其替换为:request.POST 中的 'pname' 和 request.POST 中的 'u_id' 还有一件事:你设置的条件不明确,你应该做得更好

以上是关于django视图中的elif条件的主要内容,如果未能解决你的问题,请参考以下文章

短视频学习 - 1Django运维实战

从 Django django-rest-framework 视图有条件地返回 JSON 或 HTML 响应

11.小程序之wx:if视图层条件渲染

微信小程序视图层WXML_小程序条件渲染

Django-create 过滤器基于使用 Q 对象和 if elif 条件的每个字段

如何在 Django 1.3 中使用基于类的视图重定向条件?