0
class Sample(models.model):
sampleID = models.AutoField(primary_key=True)
    something = models.IntegerField()
    .
    .
    .

def save(self, *args, **kwargs):
    is_new = self.pk is None
    super(Sample, self).save(*args, **kwargs)
    if is_new:
        alpha = AnotherSample()
        alpha.asampleID =  self.pk
        alpha.say = "Lolz"
        alpha.save()

我无法将我的主键分配给 AnotherSample 的 Sample 引用键。它总是说

Cannot assign "1L": "AnotherSample.asampleID" must be a "Sample" instance.
4

2 回答 2

1

文档

在幕后,Django 附加"_id"到字段名称以创建其数据库列名称。

alpha.asampleID_id = self.pk

这就是为什么不适合使用“ID”后缀的原因。

于 2012-09-30T16:53:21.200 回答
0

从给定的错误消息中,您似乎正在尝试保存关系。您应该传递实际对象,而不是其主键。

def save(self, *args, **kwargs):
    is_new = self.pk is None
    super(Sample, self).save(*args, **kwargs)
    if is_new:
        alpha = AnotherSample()
        alpha.asampleID =  self
        alpha.say = "Lolz"
        alpha.save()
于 2012-09-30T17:03:50.290 回答