Рендеринг элементов внешнего ключа из Django Rest Framework

эта функция хорошо работает для каждого номера n . Если значение n отрицательное, оно преобразуется в положительное. Если n не является целым числом, оно преобразуется в целое число.

def ordinal( n ):

    suffix = ['th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th']

    if n < 0:
        n *= -1

    n = int(n)

    if n % 100 in (11,12,13):
        s = 'th'
    else:
        s = suffix[n % 10]

    return str(n) + s
0
задан Elon Musk 13 July 2018 в 10:23
поделиться

2 ответа

Поскольку обратный менеджер для объектов выбора choice_set, вы должны установить source='choice_set' для поля choices:

class PollSerializer(serializers.ModelSerializer):
    choices = ChoiceSerializer(many=True, read_only=True, required=False, source='choice_set')
2
ответ дан neverwalkaloner 17 August 2018 в 13:10
поделиться
  • 1
    спасибо за предоставление быстрого ответа. если я хочу, чтобы голоса были поданы, как бы вы к этому подошли? вы могли бы сделать read_only ложным или создать новую модель, скажем, Vote, а затем встроить в нее questions и choices, а затем открыть почтовый запрос через другой URL? – Elon Musk 13 July 2018 в 10:48
  • 2
    @ElonMusk Я полагаю, что второй вариант лучше. Возможно, вам понадобится модель Vote для отслеживания истории голосования. – neverwalkaloner 13 July 2018 в 10:58

Кроме @neverwalkaloner 's answer , вы можете сделать это так же,

class PollSerializer(serializers.ModelSerializer):
    choices_set = ChoiceSerializer(many=True, read_only=True, required=False)

    class Meta:
        model = Poll
        fields = ('id', 'question_text', 'pub_date', 'choices_set')
2
ответ дан Jerin Peter George 17 August 2018 в 13:10
поделиться
  • 1
    спасибо за быстрый ответ, очень полезно. Я думаю, если я хочу, чтобы выбор был изменен, я могу сделать read_only = False, верно? – Elon Musk 13 July 2018 в 10:46
  • 2
    По умолчанию read_only=False и read_only предназначены для изменения значений . Но в вашем случае это нелогично из /polls/ API – Jerin Peter George 13 July 2018 в 12:13
Другие вопросы по тегам:

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