Прошу прощения. Вопрос, возможно, задан некорректно.
Грубо говоря, сейчас на старом api имею подобный выхлоп:
{
"response": {
"status": "success",
"code": 200,
"data": [{
"category": "str",
"last_changed_str": "1521989932",
"created_str": "1521989932",
"title": "str",
"text": "str",
"image": "str",
"last_changed": 1521989932,
"uniq_id": "str",
"created": 1521989932,
"link": "https://",
"id": 96,
"tags": ["str", "str"]
}, {
"category": "str",
"last_changed_str": "1521989932",
"created_str": "1521989932",
"title": "str",
"text": "str",
"image": "str",
"last_changed": 1521989932,
"uniq_id": "str",
"created": 1521989932,
"link": "https://",
"id": 96,
"tags": ["str", "str"]
}]
}
}
Т.е, есть общий
"response" и вложенный в него
"data". Статус и код - фиг с этим. Разберусь, но вот в этой вложенности совсем запутался. На django только начал переходить.
А вот, что выплевывает django на данный момент:
[
{
"category": "str",
"last_changed_str": "1521989932",
"created_str": "1521989932",
"title": "str",
"text": "str",
"image": "str",
"last_changed": 1521989932,
"uniq_id": "str",
"created": 1521989932,
"link": "https://",
"id": 96,
"tags": ["str", "str"]
},
{
"category": "str",
"last_changed_str": "1521989932",
"created_str": "1521989932",
"title": "str",
"text": "str",
"image": "str",
"last_changed": 1521989932,
"uniq_id": "str",
"created": 1521989932,
"link": "https://",
"id": 96,
"tags": ["str", "str"]
}
]
Поиском пользовался. Было решение через
to_representation и работает оно, как надо. За одним исключением: этим самые
response и
data добавляются к каждой "новости". Т.е, он не общий для всех.
Код самый дефолтный:
views.pyclass NewsViewSet(viewsets.ModelViewSet):
queryset = News.objects.all().order_by('-created')
serializer_class = NewsSerializer
models.pyclass News(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=255)
text = models.TextField(unique=False, default=False)
link = models.URLField(max_length=200, blank=False)
CATEGORY_CHOICES = (('22', '22'), ('33', '33'), ('44', '55'))
category = models.CharField(max_length = 128, choices = CATEGORY_CHOICES)
tags = ArrayField(models.CharField(max_length=255), blank=True)
image = models.CharField(max_length=255, unique=False, default=False)
created = models.IntegerField(default=time.time(), editable=False)
last_changed = models.IntegerField(default=time.time(), editable=False)
uniq_id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
serializers.pyclass NewsSerializer(serializers.ModelSerializer):
author_name = serializers.CharField(source='author.username', read_only=True)
created = serializers.IntegerField(read_only=True)
class Meta:
model = News
fields = ('author', 'author_name', 'text', 'link', 'category', 'tags', 'image', 'created', 'last_changed', 'uniq_id')
Такая простая ерунда, а что-то знатно встрял. Спасибо!