我对编程和数据库非常陌生,我有一个关于django中foreignkey的问题。在
假设我有一个名为Expenses
的模型,它有一个foreignkey指向Employees
模型。在
class Employees(models.Model):
...
class Expenses(models.Model):
...
employee = models.ForeignKey(Employees)
我看到foreignkey字段是一个员工ID
所以我的问题是,如果在实践中,我在表单上有一个employee's name
可供我访问,那么我必须:
Employees
表中获取名为employee id
将employee id
作为外键插入到费用表中,如下所示:
员工id=雇员.object.get(姓名='John Doe')
新费用=费用(foo='酒吧',…,员工编号=emp_员工身份证,) 新的_开支.节省()
我做得对吗?如果是这样的话,这是正确的方法吗?在
模型类名应该是单数的。这在Python中读起来更好。通过在model类中使用}。在
class Meta:
,可以使关联的数据库表具有不同的名称。另外,默认的管理器是objects
,而不是{你不需要经历那么多麻烦。Django将负责映射id。它在}等方法。你的例子是:
ForeignKey
的目标模型中创建一个“反向”字段。这个反向连接的名称是带有ForeignKey加_set
的模型的名称。因此,在您的例子中,Employees
将有一个自动生成的名为expenses_set
的字段,它充当一个管理器,包含员工的所有开支。管理器还有create
和{虽然最好保持
^{pr2}$Employee
对象的制表符:(在参数列表中使用时,
=
周围没有空格。)请注意,您不需要这样设置员工ID。在也就是说,我们大多数人通过使用
ForeignKey
参数为反向链接提供更好的名称:顺便说一句,如果你想为一个雇员获得费用,有三种方法。一个是上面的:
或者一句话:
还有:
__
表示取消对ForeignKey的引用以获取其字段。第一种方法执行两个查询,其他方法执行一个查询,但是您不能获得中间的Employee
对象供以后使用。在相关问题 更多 >
编程相关推荐