Ich muss in der Lage sein, einen Beitrag auf einem API-Endpunkt zu tun, um ein Adgroup-Modell zu speichern. Das Modell hat eine viele zu viele Feld. Ich weiß, dass ich die create() -Methode überschreiben muss. Aber wie geht es mir? Die eingehenden Anforderungsdaten haben die ID für das andere Modell (Creative). Diese ID ist bereits in der Creative-Tabelle vorhanden.Saving django Modell mit vielen zu vielen Beziehung zu Datenbank in Django Rest Framework
Django erstellt eine andere Tabelle namens adgroup_creative, um diese M2M-Beziehung zu speichern. Ich muss diese Tabelle beim Speichern dieses AdGroup-Objekts ausfüllen.
class AdGroup(models.Model):
adgroup_name = models.CharField(max_length=200, verbose_name="Name")
creative = models.ManyToManyField(Creative, verbose_name="Creative")
class Creative(models.Model):
creative_name= models.CharField(max_length=200, verbose_name="Name", default=0)
ad_type= models.PositiveIntegerField(max_length=1,verbose_name="Ad Type")
class AdGroupSerializer(serializers.ModelSerializer):
class Meta:
model = AdGroup
fields = ('id','adgroup_name','creative')
class CreativeSerializer(serializers.ModelSerializer):
class Meta:
model = Creative
fields = ('id','creative_name')
class AdGroupViewSet(mixins.CreateModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin, mixins.ListModelMixin, viewsets.GenericViewSet):
queryset = AdGroup.objects.all().order_by('-id')
serializer_class = AdGroupSerializer
https://codereview.stackexchange.com/questions/46160/django-rest-framework-add-remove-to-a-list
Save a many-to-many model in Django/REST?