Anu*_*rma 2 python django django-orm
我有 2 张表“部门”和“员工”
Dept has 2 columns ID and Name
Employees has 3 columns ID, Dept_ID, Name
Run Code Online (Sandbox Code Playgroud)
现在给定员工姓名“XYZ”,我必须检索员工姓名为“XYZ”的所有部门名称
我知道他们的解决方法是首先having name == "XYZ"从 Employee 表中检索所有 dept_id,然后进行另一个查询以从 Dept 表中检索部门名称。
他们是在单个查询中检索记录的一种方法吗?
我强烈建议对所有外键使用“lated_name”:
class Employee(models.Model):
dept = models.ForeignKey(Dept, related_name='employees')
Run Code Online (Sandbox Code Playgroud)
那么你可以这样做:
dept = Dept.objects.get(id=10)
for employee in dept.employees.all():
...
Run Code Online (Sandbox Code Playgroud)
对于您所询问的查询:
Dept.objects.filter(employees__name='XYZ')
Run Code Online (Sandbox Code Playgroud)
这对于添加更有意义的名称也非常有用。在这种情况下,这不是什么大问题(只是删除“设置”),但它对于例如用户表的关系非常有用......
| 归档时间: |
|
| 查看次数: |
6753 次 |
| 最近记录: |