如何简化像C / JS条件运算符的Django过滤器

时间:2017-08-17 10:22:46

标签: python django django-models

这是我的查询,

get_emp = Employee.objects.get(id='emp_id').name if Employee.objects.filter(name='emp_id') else None

这是我的情景...这工作正常......但我的问题是这更简单......是否可能?

因为我在条件检查中两次执行相同的查询并获取值。有可能让它单身吗?

我知道要单独定义并按照我的意愿行事,

emp_id = Employee.objects.filter(id='emp_id')
get_emp = emp_id[0].name if emp_id else None

但我想在第一种方法中做到这一点......有可能吗?

我也试过了,

get_emp = Employee.objects.filter(id='emp_id').first()

但在查询完成后我想要emp_name ..所以上面不会通过错误工作

我想做这样的事情,

get_emp = Employee.objects.get(id='emp_id').first().name ? null

2 个答案:

答案 0 :(得分:1)

您可以尝试使用first()

get_emp = Employee.objects.filter(id='emp_id').first()

它应该像你想要的那样。但是试试:))

答案 1 :(得分:1)

可能的解决方案可以是来自django-annoyingget_object_or_None()

get_emp = get_object_or_None(Employee, id='emp_id')

if not get_emp:
    ...