fix: minor API adjustments
This commit is contained in:
@@ -8,3 +8,9 @@ class FileUploadSerializer(serializers.ModelSerializer):
|
|||||||
model = FileUpload
|
model = FileUpload
|
||||||
fields = ("file", "id")
|
fields = ("file", "id")
|
||||||
read_only_fields = ("id",)
|
read_only_fields = ("id",)
|
||||||
|
|
||||||
|
|
||||||
|
class NoIDFileUploadSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = FileUpload
|
||||||
|
fields = ("file", )
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from files.api.v1.serializers import FileUploadSerializer
|
from files.api.v1.serializers import FileUploadSerializer, NoIDFileUploadSerializer
|
||||||
from shop.models import (
|
from shop.models import (
|
||||||
Product,
|
Product,
|
||||||
ProductPrice,
|
ProductPrice,
|
||||||
@@ -64,6 +64,7 @@ class ProductSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Product
|
model = Product
|
||||||
fields = (
|
fields = (
|
||||||
|
"id",
|
||||||
"name",
|
"name",
|
||||||
"description",
|
"description",
|
||||||
"stock",
|
"stock",
|
||||||
@@ -77,16 +78,19 @@ class ProductSerializer(serializers.ModelSerializer):
|
|||||||
class ListProductSerializer(serializers.ModelSerializer):
|
class ListProductSerializer(serializers.ModelSerializer):
|
||||||
price = ProductPriceSerializer()
|
price = ProductPriceSerializer()
|
||||||
tags = TagSerializer(many=True)
|
tags = TagSerializer(many=True)
|
||||||
|
images = NoIDFileUploadSerializer(many=True, read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Product
|
model = Product
|
||||||
fields = (
|
fields = (
|
||||||
|
"id",
|
||||||
"name",
|
"name",
|
||||||
"description",
|
"description",
|
||||||
"stock",
|
"stock",
|
||||||
"is_digital_asset",
|
"is_digital_asset",
|
||||||
"price",
|
"price",
|
||||||
"tags",
|
"tags",
|
||||||
|
"images",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -106,6 +110,11 @@ class CreateProductSerializer(serializers.ModelSerializer):
|
|||||||
is_digital_asset=validated_data.get("is_digital_asset"),
|
is_digital_asset=validated_data.get("is_digital_asset"),
|
||||||
url=validated_data.get("url"),
|
url=validated_data.get("url"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
tags = validated_data.get('tags')
|
||||||
|
for tag in tags:
|
||||||
|
instance.tags.add(tag)
|
||||||
|
|
||||||
ProductPrice.objects.create(
|
ProductPrice.objects.create(
|
||||||
product=instance,
|
product=instance,
|
||||||
date=timezone.now(),
|
date=timezone.now(),
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# Generated by Django 5.0.6 on 2024-05-17 00:13
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("files", "0001_initial"),
|
||||||
|
("shop", "0005_tag_alter_product_images_product_tags"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name="product",
|
||||||
|
options={
|
||||||
|
"ordering": ("id",),
|
||||||
|
"verbose_name": "Producto",
|
||||||
|
"verbose_name_plural": "Productos",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name="productbatch",
|
||||||
|
options={
|
||||||
|
"verbose_name": "Remesa de producto",
|
||||||
|
"verbose_name_plural": "Remesas de productos",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name="tag",
|
||||||
|
options={"verbose_name": "Etiqueta", "verbose_name_plural": "Etiquetas"},
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="product",
|
||||||
|
name="images",
|
||||||
|
field=models.ManyToManyField(
|
||||||
|
blank=True, to="files.fileupload", verbose_name="Imágenes"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="product",
|
||||||
|
name="tags",
|
||||||
|
field=models.ManyToManyField(
|
||||||
|
blank=True, to="shop.tag", verbose_name="Etiquetas"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -53,6 +53,7 @@ class Product(models.Model):
|
|||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _("Producto")
|
verbose_name = _("Producto")
|
||||||
verbose_name_plural = _("Productos")
|
verbose_name_plural = _("Productos")
|
||||||
|
ordering = ('id', )
|
||||||
|
|
||||||
|
|
||||||
class ProductPrice(models.Model):
|
class ProductPrice(models.Model):
|
||||||
|
|||||||
Reference in New Issue
Block a user