我为django应用程序编写了一个views函数,
def index(request):
influencers = Influencer.objects.all().order_by('followers').values()
print(influencers)
paginator = Paginator(influencers,16)
page = request.GET.get('page')
paged_listings = paginator.get_page(page)
user_list = UserList.objects.all().filter(user_id = request.user.id).values()
queryset = list(chain(paged_listings,user_list))
content = {'total_page_count': paginator.num_pages,
'influencer_count':paginator.count,
'data': queryset}
return JsonResponse(content)
它返回一个JSON对象。
问题是,当我在函数的第一行上使用.values()时,它没有在Respose中显示“多对多”字段中的值。
我尝试编写一个替代函数,该函数显示多对多字段中的值,但在通过分页输入即total_page_count
和influencer_count
时显示错误。
替代功能如下:
def index(request):
influencers = Influencer.objects.all().order_by('followers')
paginator = Paginator(influencers,16)
page = request.GET.get('page')
paged_listings = paginator.get_page(page)
user_list = UserList.objects.all().filter(user_id = request.user.id)
paginate = {"total_pages":paginator.num_pages}
queryset = list(chain(paged_listings,user_list))
ser_query = serializers.serialize('json', queryset,indent=3,use_natural_foreign_keys=True)
return HttpResponse(ser_query,content_type='application/json')
当我在查询集中包含分页时,会显示错误
'str' object has no attribute '_meta'
views函数的模型类是:
class Influencer(models.Model):
full_name = models.CharField('Full Name',max_length=255)
username = models.CharField('Username',max_length=255,unique=True)
photo = models.URLField(blank=True,max_length = 500)
categories = models.ManyToManyField(Category,blank=True,max_length=400)
hashtags = models.TextField('Hashtags',blank=True)
我希望在JSON响应中同时显示分页和ManyToMany字段信息。
我应该如何解决?