Я пытаюсь создать API для теста. Однако данные таблицы не сериализуются должным образом. поле invalid_answers_ar отправляет восходящие числа вместо фактических данных. все остальные поля работают нормально
Сериализаторы работают частично. Я бегу Джанго 1.11
models.py
class Question(models.Model):
question = models.CharField("Question",max_length=255,blank=True, null=True)
question_ar = models.CharField("Question arabic",max_length=255,blank=True, null=True)
correct_answer = models.CharField("Correct Answer",max_length=255,blank=True, null=True)
correct_answer_ar = models.CharField("Correct Answer arabic",max_length=255,blank=True, null=True)
def __str__(self):
return (self.question)
class Incorrect(models.Model):
incorrect_answers = models.CharField("Incorrect Answer",max_length=255,blank=True, null=True)
incorrect_answers_ar = models.CharField("Incorrect Answer arabic",max_length=255,blank=True, null=True)
question = models.ForeignKey(Question,related_name='incorrect_answers', on_delete=models.CASCADE,blank=True, null=True)
question_ar = models.ForeignKey(Question,related_name='incorrect_answers_ar', on_delete=models.CASCADE,blank=True, null=True)
def __str__(self):
return (self.incorrect_answers)
admin.py
class IncorrectInline(admin.TabularInline):
model = Incorrect
fk_name = "question"
class QuestionAdmin(admin.ModelAdmin):
inlines = [
IncorrectInline,
]
admin.site.register(Question, QuestionAdmin)
serializers.py
from .models import Question,Incorrect
class QuestionSerializer(serializers.ModelSerializer):
incorrect_answers = serializers.StringRelatedField(many=True)
class Meta:
model = Question
fields = ('question','question_ar', 'correct_answer','correct_answer_ar','incorrect_answers_ar','incorrect_answers')
views.py
class ListQuestionsView(generics.ListAPIView):
queryset = Question.objects.all()
serializer_class = QuestionSerializer
вот что я сейчас получаю
[
{
"question": "how old are you",
"question_ar": "old arabic",
"correct_answer": "21",
"correct_answer_ar": "21 ar",
"incorrect_answers_ar": [
1,
2,
3
],
"incorrect_answers": [
"22",
"23",
"24"
]
},
{
"question": "my mobile?",
"question_ar": "my mobile arabic?",
"correct_answer": "asus",
"correct_answer_ar": "asus arabic",
"incorrect_answers_ar": [
4,
5,
6
],
"incorrect_answers": [
"redmi",
"samsung",
"lg"
]
},
{
"question": "My bike",
"question_ar": "my bike arabic?",
"correct_answer": "gixxer",
"correct_answer_ar": "gixxer arabic",
"incorrect_answers_ar": [
7,
8,
9
],
"incorrect_answers": [
"hornet",
"fz",
"apache"
]
},
{
"question": "What the hell?",
"question_ar": "What the hell? arabic",
"correct_answer": "shit",
"correct_answer_ar": "shit arabic",
"incorrect_answers_ar": [
10,
11,
12,
13
],
"incorrect_answers": [
"good",
"bad",
"okay",
"great"
]
}
]
Как вы можете видеть, invalid_answers_ar выбрасывает числа вместо реальных значений. Есть идеи, что я делаю не так?