我希望我的模型中的foreign key
关系与username
表中的User
字段(存储使用user
创建的django.contrib.auth.forms.UserCreationForm
)。< / p>
我的模型看起来如何:
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
答案 0 :(得分:8)
除非我遗漏了某些内容,否则你可以拥有一个特定字段的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
答案 1 :(得分:5)
您不能将ForeignKey用于某个字段,但您可以连续使用。
您希望通过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
使用该属性,您可以通过username
访问blog.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)