我想选择一个或另一个但我不能使用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语句中尝试。
谢谢
答案 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()
但您最好使用Form
或ModelForm
进行自定义验证...
答案 1 :(得分:-1)
try:
i = Image(entry = e,\
image = request.FILES['file'],))
i.save()
except:
i = Image(entry = e,\
url = request.POST['website'])
i.save()