Я новичок в Django. Я сделал две модели, как это:Пример ассоциированной модели для ManyToManyField в Django
class A(models.Model):
title = models.CharField(max_length=255, null=False)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now_add=False, null=True)
b_assigned = models.ManyToManyField(B, related_name='b_assigned')
class Meta:
db_table = 'a_table'
class B(models.Model):
name = models.CharField(max_length=255, null=False)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now_add=False, null=True)
class Meta:
db_table = 'b_table'
сериализаторов для соответствующих классов:
class ASerializer(serializers.ModelSerializer):
b_assigned = BSerializer(many=True, required=True)
class Meta:
model = A
fields = ('id', 'title', 'b_assigned')
read_only_fields = ('id',)
class BSerializer(serializers.ModelSerializer):
class Meta:
model = B
fields = ('id', 'name')
read_only_fields = ('id',)
У меня уже есть несколько объектов B
в базе данных. Теперь для создания объекта A
я должен предоставить массив объектов B
. Как достичь этого, используя Django REST Framework.
Я знаю, мне нужно переопределить create
и update
в ASerializer
. Но как добавить массив B
, используя их идентификаторы, A
. Я не хочу создавать новый экземпляр B
при создании A
. Хотите достичь этого, используя только REST Framework.
Разъяснение: Я отправляю идентификаторы B
для создания/обновления A
Как о получении идентификаторов Bs, что у вас есть в вашей базе данных, а затем добавить их в А-х b_assigned в вашем создать метод? Вам не нужно создавать новый экземпляр B. – Abhishek
, вот пример этого, но он создает новые экземпляры: http://www.django-rest-framework.org/api-guide/serializers/#writing- создать-методу-для-гнездовых представлений –