Django Orm中filter和get
Orm中:
.filter 查到的是QuerySet对象,需要调用.first()获得类(实例化的)对象
<QuerySet [<UserInfo: pyer>]> <class 'django.db.models.query.QuerySet'>
.get 查到的是类(实例化的)对象
pyer <class 'sales.models.UserInfo'>
user_obj_filter = models.UserInfo.objects.filter(id=request.session.get('user_id')).first() print(user_obj_filter, type(user_obj_filter)) # <QuerySet [<UserInfo: pyer>]> <class 'django.db.models.query.QuerySet'> user_obj_get = models.UserInfo.objects.filter(id=request.session.get('user_id')) print(user_obj_get,type(user_obj_get)) pyer <class 'sales.models.UserInfo'>
当models的表中字段,to=某个类时,后期调用此字段,传递的参数,必须是类对象,而不是QuerySet对象
consultant = models.ForeignKey('UserInfo', verbose_name="销售", related_name='customers', blank=True, null=True,on_delete=models.CASCADE)
user_obj = models.UserInfo.objects.get(id=request.session.get('user_id')) user_obj = models.UserInfo.objects.filter(id=request.session.get('user_id')).first() customer_list = models.Customer.objects.filter(consultant=user_obj)

浙公网安备 33010602011771号