Всякий раз, когда я объявляю Абстрактную модель в Django для учета вложенных моделей, Django просит меня объявить str как строковое представление этой Модели. Приложение, которое я пишу, должно быть API, возвращающим JSON, и вместо реального объекта Django возвращает то, что я определил как str .
Пример:
Моя модель:
class SomeModel(models.Model):
a = models.CharField()
b = models.CharField()
def __str__(self):
return 'some string'
class Meta:
abstract = True
Родительская модель:
class ParentModel(models.Model):
someModel = models.EmbeddedModelField(
model_container=SomeModel
)
Serializer:
class ParentSerializer(serializers.ModelSerializer):
class Meta:
model = ParentModel
fields = ('someModel')
Вид:
class ParentViewSet(viewsets.ModelViewSet):
queryset = ParentModel.objects.all()
serializer_class = ParentSerializer
Теперь, когда я отправляю объект ParentModel
, я хотел бы отправить что-то вроде этого: { someModel: { a: 'something', b: 'something else' } }
, а не то, что определено в __str__
.
Я понимаю, что я мог бы определить метод __str__
для возврата всех его полей в виде строки, а затем поставить фигурные скобки вокруг вывода также в виде строк, но должен быть лучший способ сделать это?