Я столкнулся с проблемой при работе с моделями Django.скажем, имя моего приложения GasNet
, а имя моей модели Riser
, а сгенерированное имя таблицы - GasNet.riser
, я могу успешно сгенерировать таблицу, добавить объекты в таблицу и даже удалить все объекты таблицы.Но когда я пытаюсь удалить объект, я сталкиваюсь с этой ошибкой
The above exception (relation "GasNet_riser" does not exist LINE 1: ..."."createDateTime", "GasNet_riser"."deleted" FROM "GasNet_ri... ^ ) was the direct cause of the following exception:
в окне отладки, запрос sql выглядит как
sql
('SELECT "GasNet_riser"."id", "GasNet_riser"."city_code", '
'"GasNet_riser"."geom"::bytea, "GasNet_riser"."node_code", '
'"GasNet_riser"."pipe", "GasNet_riser"."parcel_code", '
'"GasNet_riser"."Number", "GasNet_riser"."hack", "GasNet_riser"."multi_code", '
'"GasNet_riser"."gis_code", "GasNet_riser"."angle", "GasNet_riser"."size", '
'"GasNet_riser"."direction", "GasNet_riser"."instalation_date", '
'"GasNet_riser"."description", "GasNet_riser"."type", '
'"GasNet_riser"."status", "GasNet_riser"."instalation_type", '
'"GasNet_riser"."material", "GasNet_riser"."zone_id", '
'"GasNet_riser"."prejenti_id", "GasNet_riser"."emergency_sub_zone_id", '
'"GasNet_riser"."updateDateTime", "GasNet_riser"."createDateTime", '
'"GasNet_riser"."deleted" FROM "GasNet_riser" WHERE "GasNet_riser"."id" = %s')
, это моя модель
class Riser(models.Model):
id=models.AutoField(primary_key=True)
city_code = models.CharField(max_length=10)
geom = models.PointField(srid=4326)
node_code = models.IntegerField(default=-1,blank=True) # شماره گره جهت اعمال مصرف آن برروی گره در طراحی
pipe = models.IntegerField(default=-1,blank=True)
parcel_code = models.IntegerField(default=-1,blank=True)
Number = models.CharField(max_length=20) #کد علمک
hack = models.IntegerField(default=-1,blank=True)
multi_code = models.CharField(max_length=10,blank=True)
gis_code = models.CharField(max_length=20,blank=True)
angle = models.FloatField(default=-1,blank=True)
size = models.IntegerField(default=-1,blank=True)
direction = models.TextField(max_length=500,blank=True)
instalation_date = models.DateField(null=True,blank=True) # تاریخ نصب
description = models.TextField(blank=True)
type = models.CharField(max_length=20,blank=True) # همان فیلد kind هست
# choises
status = models.CharField(max_length=5,default=ModelChoiseFields.NAN, choices=ModelChoiseFields.RISER_STATUS,blank=True)
instalation_type = models.CharField(max_length=5,default=ModelChoiseFields.NAN, choices=ModelChoiseFields.RISER_INSTALATION_TYPE,blank=True)
material = models.CharField(max_length=5,default=ModelChoiseFields.NAN, choices=ModelChoiseFields.RISER_MATERIAL,blank=True)
# relations
zone = models.ForeignKey(Zone,on_delete=models.CASCADE,null=True)
prejenti = models.ForeignKey(pt,models.CASCADE,null=True,blank=True)
emergency_sub_zone = models.ForeignKey(EmergencySubZone,models.CASCADE,null=True) # زیرناحیه امداد
# Auto fields
updateDateTime = models.DateTimeField('update date', auto_now_add=True, auto_now=False)
createDateTime = models.DateTimeField('create date',auto_now_add=False, auto_now=True)
deleted = models.BooleanField(default=False)
Я попытался makemigrations
и migrate
, и я знаю, что таблица в порядке, но я не знаю, почему это происходит.
Я пытаюсь удалить объект, используя этот метод.
selected=Riser.objects.get(id=id)
selected.delete()
Я думаю, что проблема с именем приложения и заглавными буквами G
и N
, но я не знаю, как решить эту проблему.
Я также пытался удалить с помощью фильтра, и такая же ошибка происходит.он говорит
relation "GasNet_riser" does not exist LINE 1: DELETE FROM "GasNet_riser" WHERE "GasNet_riser"."id" = 1115 ^
, когда я запускаю вышеупомянутый запрос вручную в своей базе данных, он выполняется без проблем DELETE FROM "GasNet_riser" WHERE "GasNet_riser"."id" = 1115
возвращает Query returned successfully: one row affected, 62 msec execution time.