эта функция хорошо работает для каждого номера 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
Поскольку обратный менеджер для объектов выбора choice_set
, вы должны установить source='choice_set'
для поля choices
:
class PollSerializer(serializers.ModelSerializer):
choices = ChoiceSerializer(many=True, read_only=True, required=False, source='choice_set')
Кроме @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')
read_only=False
и read_only
предназначены для изменения значений . Но в вашем случае это нелогично из /polls/
API
– Jerin Peter George
13 July 2018 в 12:13
Vote
, а затем встроить в нееquestions
иchoices
, а затем открыть почтовый запрос через другой URL? – Elon Musk 13 July 2018 в 10:48