模型类中建立外键的常用方法 db_constraint=False,self.user.id

发布时间 2023-07-25 10:29:46作者: ranbo145

1.

user = models.ForeignKey(to=User, related_name='order_user', on_delete=models.DO_NOTHING, db_constraint=False,verbose_name="下单用户")

 to=Order: 这是 ForeignKey 的一个参数,用于指定这个外键字段将关联到的目标模型。在这个例子中,外键字段将关联到名为 Order 的模型,表示订单和订购会员之间的关联

related_name='order_member': 这是 ForeignKey 的另一个参数,用于定义从目标模型 (Order) 反向关联回当前模型的名称。也就是说,通过订购会员 (order_member),你可以从 Order 模型反向访问与该订购会员相关联的订单

db_constraint=False: 这是 ForeignKey 的一个参数,用于指定是否在数据库层面创建外键约束。将其设置为 False 表示在数据库中不会创建外键约束。在某些情况下,你可能希望在数据库中不创建外键约束,这可以通过将该参数设置为 False 来实现

2.

 def uid(self):
        return self.user.id

self: 这是指向订单模型实例的引用。在实例方法中,第一个参数通常是self,它代表当前调用该方法的订单实例本身

self.user: 这里的 user 是指订单模型中的外键字段 user,它表示与该订单关联的下单用户

self.user.id: 这里通过 .id 访问与订单关联的下单用户的 id 属性。因为 user 是一个外键字段,它与 User 模型关联,而 User 模型通常会有一个 id 属性作为其主键

return: 这个方法的返回值是与订单关联的下单用户的 id 值。也就是说,通过调用 self.uid() 方法,你可以获取订单实例关联的下单用户的 id

这个方法的作用是为了方便在代码中获取订单实例关联的下单用户的 id,而不必直接访问 user 字段和 user.id 属性。通过调用 self.uid() 方法,你可以获得订单实例的下单用户的 id,从而在需要用户 id 的地方直接使用它,而不需要手动访问外键字段和 id 属性