Я пытаюсь написать сериализатор для моих моделей, который имеет ManyToManyField. Моя проблема, похоже, очень похожа на этот пример , но в настоящее время я не заинтересован в использовании SlugField и, тем не менее, мне не ясно, в чем заключается моя проблема.
models.py
class Objective(models.Model):
objective_name = models.CharField(max_length=10)
objective_description = models.CharField(max_length=30)
def __str__(self):
return self.objective_name
class Assessment(models.Model):
objective = models.ManyToManyField(Objective)
date_completed = models.DateField(auto_now_add=True)
serializers.py
class AssessmentSerializer(serializers.ModelSerializer):
objective = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = Assessment
fields = ['name', 'date_completed', 'objective']
class ObjectiveSerializer(serializers.ModelSerializer):
class Meta:
model = Objective
fields = '__all__'
Из документов DRF , я думал, что следующий POST создаст Объект оценки, в котором у меня уже есть два объекта Objective с номерами соответственно 3 и 4.
{
"name": "Quiz 3",
"objective": [
3,
4
]
}
Однако это создает объект оценки, но между ним и объектами нет никакой связи.
{
"name": "Quiz 3",
"date_completed": "2020-03-17",
"objective": []
}
Мой сериализатор неверен, или я использую неверный синтаксис для POST, или есть другая проблема?