Ключ не присутствует в таблице django

Сразу скажу, я просмотрел все подобные вопросы, но я could not solve my problem. Поэтому и спрашиваю. Изначально я создал таблицы Products, FeaturesForProduct, ProductFeatures в postgres. Теперь мне нужно перенести эти таблицы в django. Я использовал команду python manage.py inspectdb. Я сам определил отношения many to many. Я также написал небольшую функцию, при вызове которой я получаю ошибку:

django.db.utils.IntegrityError: insert or update on table "product_features" violates foreign key constraint "fk_products_product_features_refer"
DETAIL:  Key (id)=(1) is not present in table "products".

Я понимаю, в чем причина этой ошибки. В последний раз, когда я с ней столкнулся, я просто удалил базу данных, после чего все заработало. Меня интересует следующий вопрос, is it possible to somehow get rid of this error in another way?

My func:

class AttachNewFeatureToProduct(View): 

    def get(self, request, *args, **kwargs):
        if request.user.is_superuser:
            res_string = ""
            product = Products.objects.get(id=int(request.GET.get('product_id')))
            existing_features = list(set([item.feature.feature_name for item in product.features.all()]))
            category_features = SparePartsUnitsFeatures.objects.filter(
                spare_parts_units=product.spare_parts_unit
            ).exclude(feature_name__in=existing_features)
            option = '<option value="{value}">{option_name}</option>'
            html_select = """
                <select class="form-select" name="product-category-features" id="product-category-features-id" aria-label="Default select example">
                    <option selected>---</option>
                    {result}
                </select>
                        """
            for item in category_features:
                res_string += option.format(value=item.spare_parts_units.id, option_name=item.feature_name)
            html_select = html_select.format(result=res_string)
            return JsonResponse({"features": html_select})
        else:
            return HttpResponseRedirect('/')

Мои модели:

class Products(models.Model):
    id = models.BigAutoField(primary_key=True)
    category = models.ForeignKey(Categories, models.DO_NOTHING, db_column='category', blank=True, null=True, verbose_name = 'Категория')
    spare_parts_unit = models.ForeignKey('SparePartsUnits', models.DO_NOTHING, db_column='spare_parts_unit', blank=True, null=True, verbose_name = 'Подкатегория')
    ...
    features = models.ManyToManyField("specs.ProductFeatures", blank=True, through='FeaturesForProduct')    

    class Meta:
        managed = False
        db_table = 'products'
        ...

   ...
class ProductFeatures(models.Model):
    id = models.BigAutoField(primary_key=True)
    ...
    product = models.ForeignKey('catalog.Products', models.DO_NOTHING, db_column='product', blank=True, null=True, verbose_name='Товар')
    feature = models.ForeignKey(SparePartsUnitsFeatures, models.DO_NOTHING, db_column='feature', blank=True, null=True, verbose_name='Характеристика')

    class Meta:
        managed = False
        db_table = 'product_features'
       ...




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