Django - 可以将代理模型作为外键吗?

时间:2014-03-17 13:36:11

标签: django foreign-keys migration

作为Django的新手,这让我有点困惑。

我有一个工作的Django 1.6应用程序,使用代理模型作为外键似乎没有抛出任何错误,该应用程序工作。

然后测试Django 1.7a2似乎不允许这样做。 Django 1.7迁移会抛出一个错误,表明代理模型“无法解析”。

有关我在1.7a2中收到的错误的详细信息,请参阅此帖:Possible bug in Django 1.7a2 Migrations?

在网上进行了一些挖掘之后,似乎允许代理模型作为1.6中的外键可能是一些错误,因为有些数据库会抱怨,而有些数据库会允许它,但你真的不应该这样做它。

以下是来自南方的一个例子:http://south.aeracode.org/ticket/436 但这个SO帖子似乎表明它完全可以接受? Assigning a proxy model instance to foreign key

我似乎也无法在文档中找到任何迹象。

例如:

class Receipt(models.Model):
    date = models.DateField()
    amount = models.DecimalField(max_digits=7, decimal_places=2)


class ReturnReceipt(Receipt)
    class Meta:
        proxy = True

    def return_status(self):
        pass


class ReturnsLedger(modesl.Model):
    return_receipt = models.ForeignKey(ReturnReceipt)

更新: Git repo上面的例子,有人尝试1.7并确认 https://github.com/cgon/djtester

谢谢!

0 个答案:

没有答案