Как отобразить значения из поля «многие ко многим» после использования .values ​​() в queryset? - PullRequest
0 голосов
/ 01 июля 2019

Я написал функцию 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.

Как мне решить эту проблему

...