作为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
谢谢!