#django #api #rest #frameworks
#django #API #rest #фреймворки
Вопрос:
Я новичок в Django rest Framework, пожалуйста, укажите мне, где я допустил ошибку, я хочу создать API, который принимает два аргумента
- имя cat (которое является полем char)
- поля cat (которые являются полем JSON)
Я хочу поместить динамические поля JSON, например, на клиента, чтобы они добавили данные 4 полей с парами ключей в JSON или любым количеством полей, я надеюсь, что вы все, ребята, поймете мой запрос.
Пожалуйста, помогите мне, я буду очень признателен за вашу помощь
Вот мой Views.py
@api_view(['POST'])
@parser_classes([JSONParser])
def add_cateogry_with_fields(request, format=None):
if request.method == "POST":
insert_Serializers = AddCategoryWithFieldsSerializer(data=request.data)
if insert_Serializers.is_valid():
insert_Serializers.save()
return Response(insert_Serializers.data, status=status.HTTP_201_CREATED)
else:
return Response(insert_Serializers.data, status=status.HTTP_400_BAD_REQUEST)
и вот класс сериализатора
serializer.py
class AddCategoryWithFieldsSerializer(ModelSerializer):
category_name = serializers.CharField(max_length=34)
category_fields = serializers.JSONField()
class Meta:
model = CategoryModel
fields = ('category_name', 'category_fields')
Model.py класс — это
class CategoryModel(models.Model):
category_id = models.AutoField(primary_key=True)
category_name = models.CharField(max_length=255)
category_fields = models.JSONField()
parent_category = models.ForeignKey('self', on_delete=models.CASCADE, null=True)
class Meta:
db_table = 'category'
Ответ №1:
данные JSON, которые вы передали, имеют завершающую запятую ( ,
).
{
"category_name": "site",
"category_fields": {
"abc": "abc",
"def": "def"
}, # having comma here when there's nothing next to it will have error when parsed
}