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)

 

posted @ 2021-02-28 12:07  笑而不语心自闲  阅读(212)  评论(0)    收藏  举报