一、关系

1.1 一对一的关系


字段名称 = models.OneToOneField(to,on_delete)

to指要参考的模型名称(数据表名称)

on_delete指在删除(父)表记录时,(子)表的动作

反向关系

假设user表为主表,userinfo为从表,现在有以下代码:


users = User.objects.all()

现在得到了主表中的所有数据,但是在模板中如果要访问从表记录的话,在Django中称为反向关系,因为你现在要得到从表中的记录,也就是说最终拿到的是从表中的记录,它是按拿到的最终的结果来说。

访问反向关系


object.模型名称.字段名称
模型名称为小写字母

onetoone.html中访问记录的HTML代码如下:

{% for user in users %}
<p>姓名:{{ user.username }}</p>
<!-- user.userinfo.occupation 就是反向关系-->
<p>岗位:{{ user.userinfo.occupation}}</p>
{% endfor %}

访问正向关系



object.关系名称.字段名称


class UserInfo(models.Model):
    # 0为男,1为女,2为保密
    sex = models.CharField(max_length=1)
    # 0为未婚,1为已婚,2为保密,
    maritalstatus = models.CharField(max_length=1)
    monthlyincome = models.DecimalField(max_digits=8,decimal_places=2)
    occupation = models.CharField(max_length=30)
    # 外键字段,最终形成字段名称为:指定名称_id,如下案例将形成: user_id
    # 该名称在模型中严格称为关系名称,在访问正向关系时使用
    user=models.OneToOneField(User,on_delete=models.CASCADE)


1690430509231.png

最后修改:2024 年 11 月 09 日
如果觉得我的文章对你有用,请随意赞赏