выборка данных составного ключа django - PullRequest
0 голосов
/ 12 июня 2018

У меня есть две таблицы dim_job и dim_stream, когда я делаю python manage.py inspectdb> models.py .......... затем ниже показан models.py (показан класс), созданный в django ........ таблица dim_job имеет три атрибута, в которых job_name и псевдоним объединены в качестве первичного ключа ...... здесь псевдоним также является внешним ключом, ссылающимся на псевдоним таблицы dim_stream.Таблица dim_stream имеет два атрибута, где псевдоним является первичным ключом ........... Когда я пытаюсь выполнить DimJob.objects.all () показывает ошибку.?Как можно получить данные из таблицы dim_job? Запросы django?

При ошибке я вижу, что dim_job.id не существует .... Я не понимаю, почему он показывает это? Уже есть объединенная первичнаяключ (job_name, alias).

Я использую базу данных postgres

    class DimJob(models.Model):
          job_name = models.CharField(max_length=50)
          alias = models.ForeignKey('DimStream', db_column='alias')
          job_start_time = models.CharField(max_length=20, blank=True, null=True)

          class Meta:
              managed = False
              db_table = 'dim_job'
              unique_together = (('job_name', 'alias'),)



    class DimStream(models.Model):
          stream_name = models.CharField(max_length=50, blank=True, null=True)
          alias = models.CharField(primary_key=True, max_length=50)

          class Meta:
              managed = False
              db_table = 'dim_stream'

          def __str__(self):
              return self.stream_name




         Error:
           DimJob.objects.all()
           Traceback (most recent call last):
           File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
           32\lib\site-packages\django\core\management\commands\shell.py", 
           line 69, in handle
           self.run_shell(shell=options['interface'])
           File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
           32\lib\site-packages\django\core\management\commands\shell.py", 
           line 61, in run_shell
           raise ImportError
           ImportError

           During handling of the above exception, another exception 
           occurred:

           Traceback (most recent call last):
           File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
           32\lib\site-packages\django\db\backends\utils.py", line 64, in 
           execute
           return self.cursor.execute(sql, params)
           psycopg2.ProgrammingError: column dim_job.id does not exist
           LINE 1: SELECT "dim_job"."id", "dim_job"."job_name", 
           "dim_job"."alia...
           ^


              The above exception was the direct cause of the following 
              exception:

              Traceback (most recent call last):
              File "<console>", line 1, in <module>
              File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
              32\lib\site-packages\django\db\models\query.py", line 138, in 
               __repr__
              data = list(self[:REPR_OUTPUT_SIZE + 1])
              File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
              32\lib\site-packages\django\db\models\query.py", line 162, in 
             __iter__
             self._fetch_all()
              File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
               32\lib\site-packages\django\db\models\query.py", line 965, in 
               _fetch_all
             self._result_cache = list(self.iterator())
             File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
             32\lib\site-packages\django\db\models\query.py", line 238, in 
              iterator
            results = compiler.execute_sql()
             File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
             32\lib\site-packages\django\db\models\sql\compiler.py", line 
            829, in execute_sql
            cursor.execute(sql, params)
            File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
             32\lib\site-packages\django\db\backends\utils.py", line 79, in 
           execute
          return super(CursorDebugWrapper, self).execute(sql, params)
          File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
          32\lib\site-packages\django\db\backends\utils.py", line 64, in 
        execute
          return self.cursor.execute(sql, params)
           File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
         32\lib\site-packages\django\db\utils.py", line 97, in __exit__
        six.reraise(dj_exc_type, dj_exc_value, traceback)
         File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
       32\lib\site-packages\django\utils\six.py", line 658, in reraise
         raise value.with_traceback(tb)
         File "C:\Users\vivekre\AppData\Local\Programs\Python\Python36- 
        32\lib\site-packages\django\db\backends\utils.py", line 64, in 
        execute
          return self.cursor.execute(sql, params)
       django.db.utils.ProgrammingError: column dim_job.id does not exist
       LINE 1: SELECT "dim_job"."id", "dim_job"."job_name", 
       "dim_job"."alia...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...