Я пытаюсь отправить запрос в базу данных, и я столкнулся со следующей ошибкой.
ValueError: "<Item: x>" needs to have a value for field "id" before this many-to-many relationship can be used.
вот мои модели
class Farmers(models.Model):
First_Name = models.CharField(max_length=15)
Last_Name = models.CharField(max_length=15)
code =models.IntegerField(default=1)
phone = PhoneField(blank=True, help_text='Contact phone number')
class Item(models.Model):
category = models.CharField(max_length=20)
ammount_in_KG = models.IntegerField(default=1)
price = models.FloatField()
farmer = models.ManyToManyField(
Farmers
)
slug = models.SlugField(default=sluger)
description = models.TextField(blank=True)
image = models.ImageField(blank=True)
вот сериализаторы
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ['id','category', 'ammount_in_KG', 'price','farmer']
class FarmerSerializer(serializers.ModelSerializer):
class Meta:
model = Farmers
fields = ['id','First_Name', 'Last_Name','code']
вот наборы просмотра
@api_view(['POST',])
def api_create_item_view(request):
item = Item()
if request.method == "POST":
serializer=ItemSerializer(item ,data=request.data)#data is gonna get changed
data = {}
if serializer.is_valid():
serializer.save()
data["success"] = "create successful"
return Response(data=data)
return Response(serializer.errors ,status=status.HTTP_400_BAD_REQUEST)
я пытался отправить запрос, используя python запросы со следующими данными
post_data={"item":"x","ammount_in_KG":"6", "farmer":[1]}
я нашел в Google решение сохранить модель элемента перед добавлением фермера, но я обнаружил, что в моем случае это сбивает с толку.
Я новичок в django запросах на перезапуск и API, поэтому, пожалуйста, помогите мне.
Заранее спасибо