отношение "" не существует в django для имени приложения в смешанном регистре - PullRequest
0 голосов
/ 05 июня 2018

Я столкнулся с проблемой при работе с моделями 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...