Esistono due modelli: Product
e Picture
. Ogni Product
può avere diversi Picture
s. Ho delle domande quando voglio creare un prodotto usando POST. Come pubblicare un oggetto nidificato contenente un elenco ImageField?Come inviare un dati nidificati e un elenco di immagini
Il modello Product
è:
class Product(models.Model):
product_id = models.AutoField(primary_key=True)
product_name = models.CharField(max_length=50)
description = models.TextField(blank=True)
Il modello Picture
è:
class Picture(models.Model):
product = models.ForeignKey(Product, related_name='pictures')
path = models.ImageField(null=False, upload_to='product_pic')
description = models.CharField(max_length=255, null=True, blank=True)
main = models.BooleanField()
scrivo la serializer.py come segue:
class PictureSerializer(serializers.ModelSerializer):
class Meta:
model = Picture
fields = ('path', 'description', 'main')
class ProductSerializer(serializers.ModelSerializer):
pictures = PictureSerializer(many=True, required=False)
class Meta:
model = Product
fields = ('product_id', 'product_name', 'pictures', 'description')
Il punto di vista che sto usando is:
class ProductEnum(generics.ListCreateAPIView):
queryset = Product.objects.all()
serializer_class = ProductSerializer
permission_classes = (IsAuthenticated,)
def post(self, request, format=None):
serializer = ProductSerializer(data=request.DATA, files=request.FILES)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
sto registrando che negli URL come:
url(r'^api/products/$', views.ProductEnum.as_view()),
Le domande sono:
- Come potrei provare questo post api come
django-rest-framework
mi dice che "Le liste non sono attualmente supportate in Input HTML " - Come utilizzare JSON per POST a
Product
risorse con piùPictures
. O devo usare parser multipart. - Come scrivere il comando cURL?
sei riuscito a farlo bene? – momokjaaaaa