调整没有if - Django python

时间:2014-10-10 17:03:21

标签: python django

我想选择一个或另一个但我不能使用if语句,因为即使我只是尝试它也会发生错误。

我如何构建代码,以便在可能的情况下执行此操作:

i = Image(entry = e,\
        image = request.FILES['file'],))
i.save()

如果不可能,我应该这样做:

i = Image(entry = e,\
        url = request.POST['website'])
i.save()

我实际检查的基本事情是,如果我可以调用request.FILES,因为我的图像只是一个URL或本地文件本身,但我不能在if语句中尝试。

谢谢

2 个答案:

答案 0 :(得分:2)

简单的解决方案:

kw = {'entry': e}
if 'file' in request.FILES:
    kw['image'] = request.FILES['file']
elif 'url' in request.POST:
    kw['url'] = request.POST['website']
else:
    raise SomeException()
i = Image(**kw)
i.save()

但您最好使用FormModelForm进行自定义验证...

答案 1 :(得分:-1)

try:
    i = Image(entry = e,\
        image = request.FILES['file'],))
    i.save()

 except:
    i = Image(entry = e,\
        url = request.POST['website'])
    i.save()