模型字段的外键?

ForeignKey to a Model field?

我想要我的模型中的 foreign key 关系与 User table 中的 username 字段(存储使用 [= 创建的 user 15=]).

这是我的模型的样子:

class Blog(models.Model):
    username = models.CharField(max_length=200) // this should be a foreign key
    blog_title = models.CharField(max_length=200)
    blog_content = models.TextField()

username字段应该是外键。The Foreign Key should be with this field

字段不能有外键,但行可以。

您想要 username,可通过 User 型号获得

所以:

blog.user.username

如果你坚持要blog.username,你可以这样定义属性:

from django.db import models
from django.contrib.auth.models import User

class Blog(models.Model):
    user = models.ForeignKey(User)

然后访问您要使用的字段:

blog.user.username

如果你坚持要blog.username,你可以这样定义属性:

from django.db import models
from django.contrib.auth.models import User

class Blog(models.Model):
    user = models.ForeignKey(User)

    @property
    def username(self):
        return self.user.username

通过 属性,您可以通过 blog.username 访问 username

关于如何导入用户的注意事项

user = ForeignKey('auth.User')

from django.contrib.auth.models import User
user = ForeignKey(User)

或更推荐

from django.conf import settings
user = ForeignKey(settings.AUTH_USER_MODEL)

除非我遗漏了什么,否则你可以有一个特定字段的外键:

class Blog(models.Model):
    username = models.ForeignKey(User, to_field='username')

https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.ForeignKey.to_field