У меня есть несколько таблиц, как показано ниже, которые были созданы в соответствии с 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!