在ForeignKey上设置unique = True与使用OneToOneField具有相同的效果

时间:2015-06-18 12:23:18

标签: python django python-3.x django-models django-1.8

我最近从1.7切换到了Django 1.8.2,但是我遇到了一些问题,例如我的一个模型:

class Author(models.Model):
    author = models.ForeignKey(UserProfile, blank=False, primary_key=True)
    timestamp = models.DateTimeField(auto_now_add=True)

但是当我运行服务器时,我遇到了以下警告:

WARNINGS:
exam.Author.author: (fields.W342) Setting unique=True on a ForeignKey has the same effect as using a OneToOneField.
HINT: ForeignKey(unique=True) is usually better served by a OneToOneField.

我该怎么办?

2 个答案:

答案 0 :(得分:3)

ng-style暗示primary_key。因此,正如警告所说,您应该使用OneToOneField。

答案 1 :(得分:2)

作为Daniel said,您最好使用OneToOneField

可以在this Stack Overflow Question找到关于其原因的一个很好的解释。