我有两个模型,如:
class Manager(models.Model)
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=65535, null=False)
class Employee(models.Model)
id = models.AutoField(primary_key=True)
manager = models.ForeignKey(Manager)
name = models.CharField(max_length=65535, null=False)
为经理取得所有员工时,这是正确的方法:
mgr = Manager.objects.get(id=1)
emps = Employees.objects.get(manager=mgr)
或
mgr = Manager.objects.get(id=1)
emps = Employees.objects.get(manager=mgr.id)
创建父对象和子对象时,可以这样做:
emp = Manager.objects.create(name='John').employees.create(name='Johns Slave')
答案 0 :(得分:1)
两者都不=)
mgr = Manager.objects.get(id=1)
emps = mgr.employee_set.all()
对于你的第二个。不,你会分开需要它们,就像这样:
mgr = Manager.objects.create(name='John')
emp = Employee.objects.create(name='Johns Slave', manager=mgr)
答案 1 :(得分:0)
对于第一个,你可以做到
emps = Employees.objects.filter(manager=1)
假设1是您需要检索员工的经理ID。