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

alt*_*tic 5 python django django-models python-3.x 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)
Run Code Online (Sandbox Code Playgroud)

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

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.
Run Code Online (Sandbox Code Playgroud)

我应该怎么办?

Dan*_*man 4

primary_key暗示unique=True。因此,正如警告所述,您可能应该使用 OneToOneField。