如何简化Django过滤器,如C/JS条件操作

2024-10-05 14:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的问题

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

Tags: namenoneidgetifobjectsemployeefilter
2条回答

您可以尝试使用first()

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

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

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

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

if not get_emp:
    ...

相关问题 更多 >