2013-06-22 43 views
0

道歉,如果这是一个非常愚蠢的问题...Django的管理器外键的创建功能

说我有一个模型,经理,这样,

class TestModel_1Manager (models.Manager): 
    def create (self, tk) 
     m = self.model(test_key=tk) 

class TestModel_1 (models.Model): 
    test_key = models.ForeignKey ('TestModel_2') 
    objects = TestModel_1Manager 

几个问题:

  1. 这是对的吗?

  2. 如果这是正确的,那么models.ForeignKey字段不需要 一个对象?只是一个简单的ID整数是好的?也就是说,我不需要 这样做:m = self.model(test_key=TestModel_1.objects.get(id=tk))或东西 那样?

也许我不太清楚这个models.ForeignKey实际上是...一个整数还是一些对象引用?

谢谢!

编辑:刚刚发现这个帖子Django: Set foreign key using integer?,不知道它是否有关?

回答

1

ForeignKey是一种抽象。 该字段的值是另一个对象,但它代表in the table作为该对象的PK的值。

+0

那么......哪一个是对的? 'm = self.model(test_key = tk)'是这样吗?或'm = self.model(test_key = TestModel_1.objects.get(id = tk))'? – reedvoid

+0

'm = self.model(test_key_id = tk)' –