[英]ForeignKey to a Model field?
I want a foreign key
relation in my model with the username
field in the User
table(that stores the user
created with django.contrib.auth.forms.UserCreationForm
). 我希望有一个
foreign key
在我与模型关系username
在该领域User
表(存储在user
与创建django.contrib.auth.forms.UserCreationForm
)。
This how my model looks: 我的模型看起来如何:
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()
The username
field should be the foreign key. username
段应该是外键。 The Foreign Key should be with this field 外键应该在此字段中
Unless I'm missing something, you can have a ForeignKey to a specific field: 除非我遗漏了某些内容,否则您可以将ForeignKey用于特定字段:
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 https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.ForeignKey.to_field
You can't have an ForeignKey to a field, but you can to a row. 你不能有一个ForeignKey到一个字段,但你可以连续。
You want username
which is available through the User
model 你想要
username
是可以通过User
模型
So: 所以:
blog.user.username
If you insist on having blog.username
you can define a property like this: 如果你坚持使用
blog.username
你可以定义这样的属性:
from django.db import models
from django.contrib.auth.models import User
class Blog(models.Model):
user = models.ForeignKey(User)
Then to access the field you want use: 然后访问您想要使用的字段:
blog.user.username
If you insist on having blog.username
you can define a property like this: 如果你坚持使用
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
With that property, you can access username
through blog.username
. 使用该属性,您可以通过
blog.username
访问username
。
user = ForeignKey('auth.User')
or 要么
from django.contrib.auth.models import User
user = ForeignKey(User)
or the more recommended 或者更推荐
from django.conf import settings
user = ForeignKey(settings.AUTH_USER_MODEL)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.