Мое приложение ember ожидает, что ответ JSON будет содержать результат первичного ключа для идентификатора модели.Вместо того, чтобы использовать целочисленные идентификаторы, я хочу использовать слагов.Я знаю, что в стандартном фреймворке django вы можете сделать что-то вроде этого:
from rest_framework import serializers
from .models import Page
class PageSerializer(serializers.ModelSerializer):
id = serializers.CharField(source='slug')
class Meta:
model = Page
fields = ('name','id',...etc )
Однако это не работает при использовании json api - в моем ответе у меня все еще есть что-то вроде
"data": [{
"type": "pages",
"id": "2",
"attributes": {
"name": "Some page name",
}]
Когда я хочу, чтобы поле "id" было чем-то вроде "some-page-name" (slug)
Разве это невозможно с json api.Для ясности эквивалентный импорт json api выше будет
from rest_framework_json_api import serializers
Большое спасибо
**** добавление ****
Чтобы помочь прояснить проблему, с которой я столкнулсяВот сериализатор, использующий стандартную среду REST.Все атрибуты, показанные ниже, включены в модель страницы.
from rest_framework import serializers
from .models import Page
class PageSerializer(serializers.ModelSerializer):
id = serializers.CharField(source='slug')
class Meta:
model = Page
fields = ('name','id')
Ответ JSON, который я получаю на http://localhost:8000/api/pages, выглядит следующим образом
[
{
"name": "Page 1",
"id": "page-1"
},
{
"name": "Page 2",
"id": "page-2"
},
{
etc
}
]
Когда я использую json api, делаю то же самое, но, очевидно, импортирую
from rest_framework_json_api import serializers
Я не могу изменить значение идентификатора таким же образом, у меня что-то подобное при просмотре http://localhost:8000/api/pages
{
"links": {
omitted for brevity ...
},
"data": [
{
"type": "pages",
"id": "1",
"attributes": {
"name": "Page 1"
}
},
{
"type": "pages",
"id": "2",
"attributes": {
"name": "Page 2"
}
},
]