我有以下代码:
from django_app.models import Model
def func_name():
name = "name"
if Model.objects.filter(name=name).count() > 1:
raise ValidationError("This name already exists.")
else:
return name
现在我想把它变成一行代码。我是这样做的:
from django_app.models import Model
def func_name():
name = "name"
raise ValidationError("This name already exists") if Model.objects.filter(name=name).count() > 1 else return name
但是这给了我一个语法错误。
这样的实现在Python中是可能的吗?
因为这不可能。这就是Python的哲学:可读的代码。代码
raise ValidationError("This name already exists") if Model.objects.filter(name=name).count() > 1 else return name
将作为
执行if Model.objects.filter(name=name).count() > 1:
raise ValidationError("This name already exists")
else:
raise (return name)
无效
你也不能避免这个,因为raise不返回任何数据。