[Результаты Pdb прилагаются] В Таблице B действует ограничение «соответствующий запрос не существует» в Таблице A - Python / Django - PullRequest
0 голосов
/ 09 октября 2018

У меня есть несколько таблиц, как показано ниже, которые были созданы в соответствии с third-party system, приложение также работает под базой данных этой системы (оракул).

Не удалось выполнить ограничение в Table A, но оно работаетв Table B, предполагается, что я хочу отобразить e.name в Table B с кодом b.c.d.e.name, на передней странице отображаются точные данные, а на передней странице отображается None в Table A с кодом a.b.c.d.e.name,

class A(models.Model):
    a_id = models.IntegerField(primary_key=True)
    b = models.OneToOneField('B', models.DO_NOTHING, related_name='+')

class B(models.Model):
    b_id = models.IntegerField(primary_key=True)
    c = models.OneToOneField('C', models.DO_NOTHING, related_name='+')

class C(models.Model):
    c_id = models.IntegerField(primary_key=True)
    d = models.OneToOneField('D', models.DO_NOTHING, related_name='+')

class D(models.Model):
    d_id = models.IntegerField(primary_key=True)
    e = models.OneToOneField('E', models.DO_NOTHING, related_name='+')

class E(models.Model):
    e_id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=64)

Результаты pdb, как показано ниже:

(Pdb) B.objects.using('third_party_db').get(c__d__e__name="Dog")
*** general.models.B.MultipleObjectsReturned: get() returned more than one B -- it returned 1673!
(Pdb) A.objects.using('third_party_db').get(b__c__d__e__name="Dog")
*** general.models.A.DoesNotExist: A matching query does not exist.
(Pdb) A.objects.using('third_party_db').get(b__c__pk=1)
*** general.models.A.DoesNotExist: A matching query does not exist.
(Pdb) A.objects.using('third_party_db').get(b__f__pk=1)
*** general.models.A.MultipleObjectsReturned: get() returned more than one A -- it returned 18!
...