related_name 这里不太懂,课堂老师写的这个和Profile和表名称还有方面名称都不一样呢?
class UserProfile(CommonModel):
SEX_CHOICES=(
(0,'未知'),
(1,'男'),
(2,'女'),
)
user=models.OneToOneField(User,verbose_name='关联用户',related_name='Profile',on_delete=models.CASCADE)
username=models.CharField('用户名称',max_length=128,unique=True)
real_name=models.CharField('真实姓名',max_length=128,null=True,blank=True)
sex=models.SmallIntegerField('性别',default=0,choices=SEX_CHOICES)
maxim=models.CharField('用户格言',max_length=128,null=True,blank=True)
address=models.CharField('用户地址',max_length=128,null=True,blank=True)
class Meta:
db_table='accounts_user_profile'19
收起
正在回答
1回答
同学,你好!UserProfile类对应的表名是accounts_user_profile,用于存储用户详细信息,用户详细信息和用户是一对一的关系,User模型对象通过related_name可以访问到UserProfile中的字段值
比如,在用户表和用户详细信息表中有如下数据记录



relate_name也可以定义为其他值,比如user=models.OneToOneField(User,verbose_name='关联用户',related_name='myprofile',on_delete=models.CASCADE),通过User模型对象访问UserProfile字段时,relate_name也要写成myprofile,如
user_obj = User.objects.get(username="xiaomu") user_obj.myprofile.nickname
祝:学习愉快!
Python全能工程师
- 参与学习 人
- 提交作业 16416 份
- 解答问题 4469 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星