Как связать экземпляр родительской таблицы с новым экземпляром дочерней таблицы через внешние ключи в Django?

Я новичок в Django и reactJS. Я создаю модели с отношениями по внешнему ключу в моделях Django. Но когда я отправляю данные из React в мой Django rest API, он создает родительский объект таблицы на основе значения внешнего ключа вместо того, чтобы ассоциировать его с существующим значением. Как я могу ассоциировать с вновь созданным дочерним экземпляром вместо создания родительского объекта?

Я ищу уже 2 дня, но ничего не помогло. Что я делаю не так?

Это дает мне такой заголовок ответа в моем приложении reactJS:

{"store_title":[" данные магазина с таким названием уже существуют."]}

Мои модели:

def user_directory_path(instance, filename):
  
    # file will be uploaded to MEDIA_ROOT / user_<id>/<filename>
    return 'user_{0}/{1}'.format(instance.user, filename)

class StoreData(models.Model):
    STATUS=(
        ('A','Active'),
        ('P','Pending approval'),
        ('B','Blocked'),
    )
    
    store_title=models.CharField(max_length=50,primary_key=True, null=False)
    tagline=models.CharField(max_length=100,null=False, default='')
    store_type=models.CharField(max_length=10,null=False, default='')
    description=models.CharField(max_length=500,null=False, default='')
    user=models.ForeignKey(User,on_delete=models.CASCADE,null=True)
    logo_img=models.ImageField(upload_to=user_directory_path, default='')
    brand_img=models.ImageField(upload_to=user_directory_path, default='')
    link=models.CharField(max_length=100, default='')
    date_created=models.DateField(default=timezone.now)
    status=models.CharField(max_length=20,choices=STATUS,default='A')
    def __str__(self):
        return str(self.store_title)

class Categories(models.Model):
    title=models.CharField(max_length=50, default='none')
    thumbnail_img=models.ImageField(upload_to=user_directory_path, default="")
    store_title=models.ForeignKey(StoreData, on_delete=models.CASCADE, default='')
    def __str__(self):
        return str(self.title)

Моими сериализаторами являются:

class StoreSerializer(serializers.ModelSerializer):
    class Meta:
        model = StoreData
        fields = '__all__'


class CategorySerializer(serializers.ModelSerializer):
    def __init__(self, data):
        self.store_title=serializers.SlugRelatedField(queryset=StoreData.objects.filter(pk=data['store_title']))
        
    class Meta:
        model = Categories
        fields = '__all__'

А мой rest API:

@api_view(['POST'])
def addCategory(request):
    serializer=CategorySerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response("success", status.HTTP_200_OK)
    else:
        return Response(serializer.errors,status.HTTP_405_METHOD_NOT_ALLOWED)

И я отправляю запрос из React следующим образом:

function handleSubmit(e) {
        e.preventDefault()
        let category_data = new FormData()
        category_data.append('title', title)
        category_data.append('thumbnail_img', selectedThumb_Img)
        category_data.append('store_title', JSON.parse(localStorage.getItem('store_data')).title)

        fetch('http://localhost:8000/store_apis/addCategory/', {
            method: 'Post',
            body: category_data
        })
            .then(res => {
                if (res.status !== 200)
                    document.getElementById('text-error').innerHTML = res.Text
                else {
                    navigate('/categories')
                }
            })
            .catch((res) => document.getElementById('text-error').innerHTML = res.statusText)

    }

Как я могу связать существующий родительский экземпляр с вновь созданным дочерним экземпляром?

Спасибо

Вернуться на верх