比如下面这段:
m.User.objects.values('id', 'coreuserwxprofile__nickname').filter( coreuserwxprofile__nickname__contains=q).all()[0:20]
我要是希望返回结果是这样的:
[{'id':1,'nick':'tom'}]
应该怎么做呢? 谢谢~~~
学习是最好的投资!
from django.db.models import F User.objects.annotate(nick=F('coreuserwxprofile__nickname')).values('id', 'nick')
Deux méthodes, choisissez-en une vous-mêmePremière méthode :
users = User.objects.filter(coreuserwxprofile__nickname__contains=q).values('id', 'coreuserwxprofile__nickname')[0:20] users = [{'id': _.id, 'nick': _.coreuserwxprofile__nickname} for _ in users]
Deuxième type :
users = User.objects.filter(coreuserwxprofile__nickname__contains=q).extra( select = {'nick': 'coreuserwxprofile.nickname'} ).values('id', 'nick')[0:20]
Deux méthodes, choisissez-en une vous-même
Première méthode :
Deuxième type :