Объект QuerySet не имеет атрибута сериализации - PullRequest
0 голосов
/ 23 января 2019

views.py

import json
from django.shortcuts import get_object_or_404
from django.core.serializers import serialize
from django.shortcuts import render
from django.http import JsonResponse, HttpResponse
from django.views.generic import View
from RestAPI.mixin import JsonResponseMixIn
from .models import Update   

class SerializedListView(View):
    def get(self , request , *args , **kwargs):
        qs = Update.objects.all()
        qs = qs.serialize() #error in this line
        return HttpResponse(qs , content_type="application/json")

Метод сериализации работает нормально с методом get (), но он выдает ошибку в методе all ()

Значение исключения:
Объект 'QuerySet' не имеет атрибута 'serialize'

models.py

import json
from django.core.serializers import serialize
from django.db import models
from django.conf import settings

# Create your models here.



class UpdateQuerySet(models.QuerySet):
    def serialize(self):
        list_values = list(self.values("uesr","content","image"))
        return json.dumps(list_values)

class UpdateManager(models.Manager):
    def get_queryset(self):
        return UpdateQuerySet(self.model, using=self._db)

1 Ответ

0 голосов
/ 23 января 2019

Я думаю, что лучше вы можете определить Один serializer и получить такие данные:

class UpdateSerializer(serializers.ModelSerializer):
    class Meta:
        model = Update
        fields = ("user", "content", "schedule", "image")

и в view изменить на это:

class SerializedListView(View):
    def get(self , request , *args , **kwargs):
        qs = Update.objects.all()
        serializer = UpdateSerializer(qs, many=True)
        return HttpResponse(serializer.data , content_type="application/json")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...