Django проблема внешнего ключа в модели из устаревшей базы данных - PullRequest
0 голосов
/ 31 января 2020

Я создал две таблицы в базе данных Posgre SQL. Я ссылался на внешний ключ, но в django я не могу заставить его работать. to_field не работает.

Обратите внимание, что родительская таблица organization_ID не является первичным ключом

В django admin при нажатии на ссылку DeviceDetailLine появляется ошибка ниже .

ProgrammingError в / admin / apps / devicedetailline / column device_dj_detail_line.org_id_id не существует LINE 1: ВЫБРАТЬ "device_dj_detail_line". "Id", "device_dj_detail_line" ... ^ СОВЕТ: Возможно, вы имели в виду для ссылки на столбец "device_dj_detail_line.org_id".

class DeviceDetailHeader(models.Model):
    organization_ID = models.IntegerField(unique=True)
    organization_name = models.CharField(max_length=100)

    def __str__(self):
        return str(self.organization_name)

    class Meta:
        managed = False
        db_table = 'device_dj_detail_header'


class DeviceDetailLine(models.Model): 
    org_id = models.ForeignKey(DeviceDetailHeader,to_field='organization_ID', on_delete=models.CASCADE)
    label = models.CharField(max_length=250)
    value = models.CharField(max_length=250)
    display_flag = models.BooleanField(default=True)

   class Meta:
        managed = False
        db_table = 'device_dj_detail_line'

1 Ответ

0 голосов
/ 31 января 2020

Я изменил поле внешнего ключа, добавив db_column, и теперь оно работает.

application_id = models.ForeignKey(DeviceDetailHeader,to_field='application_id',
db_column='application_id',on_delete=models.CASCADE) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...