@stayHARD

Как правильно сериализовать объект?

Здравствуйте.
Возвращаю вот такой json:
{
        "id": 1,
        "date": "2015-09-09",
        "course": 1,
        "meds": [
            {
                "id": 1,
                "time": "06:00:00, 10:00:00",
                "amount": "1",
                "unit": "pil",
                "med": 1
            },
            {
                "id": 2,
                "time": "12:00:00",
                "amount": "2",
                "unit": "gram",
                "med": 1
            }
        ]
}

А хочу вместо айдишника в med возвращать полный объект.
Модели:

class Med(models.Model):
	med = models.CharField(max_length = 250)
	description = models.CharField(max_length = 250)
	video_url = models.CharField(max_length = 250)

	def __unicode__(self):
		return u'%s' % (self.med)

class Preparate(models.Model):
	time = models.CharField(max_length = 500, default='07:00:00')
	amount = models.CharField(max_length = 30)
	unit = models.CharField(max_length = 30)
	day = models.ForeignKey(Day, related_name = 'meds')
	med = models.ForeignKey(Med, related_name = 'mqqq')

	def __unicode__(self):
		return u'%s' % (self.time)

И мои сериализаторы:
class PreparateSerializer(serializers.ModelSerializer):
	class Meta:
		model = Preparate
		fields = ('id', 'time', 'amount', 'unit', 'med')

class DaySerializer(serializers.ModelSerializer):
	meds = PreparateSerializer(many=True, read_only=True)
	class Meta:
		model = Day
		fields = ('id', 'date', 'course', 'meds')


Как правильно поправить сериализаторы?
  • Вопрос задан
  • 558 просмотров
Пригласить эксперта
Ответы на вопрос 1
pinkevich
@pinkevich
Developer
попробуйте вместо PreparateSerializer использовать
from rest_framework.serializers import RelatedField
...
meds = RelatedField(source='med', read_only=True)
...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы