Я написал функцию views для моих приложений django:
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')
Когда я включаю paginate в набор запросов, он выдает ошибку
'str' object has no attribute '_meta'
Класс модели для функции представлений:
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)
Мне нужна информация о пагинации и поле ManyToMany в моем ответе JSON.
Как мне решить эту проблему