如果Django Model' s字段与条件匹配,则将其分配给该值。
g = Car.objects.get(pk=1234)
g.data_version = my_dict['dataVersion'] if my_dict else expression_false # Do nothing??
在这种情况下我该怎么办?我们无法if conditional else pass
。
我知道我能做到:
if my_dict:
g.data_version = my_dict['dataVersion']
但我想知道是否有办法内联expression_true if conditional else do nothing
。
答案 0 :(得分:8)
不,你不能完全按照你所描述的那样做,因为它没有意义。您正在分配变量g.data_version
...所以您必须分配一些东西。你所描述的就像写作:
g.data_version = # There is nothing else here
这显然是无效的语法。实际上,没有理由这样做。你应该这样做:
if my_dict:
g.data_version = my_dict['dataVersion']
或
g.data_version = my_dict['dataVersion'] if my_dict else None # or 0 or '' depending on what data_version should be.
从技术上讲,你也可以这样做:
g.data_version = my_dict['dataVersion'] if my_dict else g.data_version
如果您只想更新g.data_version
,如果您的dict存在,但这比仅使用普通的if语句更不易读和优雅。