Ссылка на связанный объект не работает без импорта самой связанной модели - PullRequest
0 голосов
/ 22 мая 2018

У меня есть 2 модели в моем приложении -

В моделях / parent.py у меня есть -

 from django.db import models
 class Parent(models.Model): 
       class Meta:
          db_table = "parent_table"
       start_date = models.DateField()
       end_date = models.DateField()

В моделях / child.py у меня -

from django.db import models
from models.parent import Parent
class Child(models.Model): 
   class Meta:
      db_table = "child_table"
   some_ref = models.ForeignField(Parent)

Теперь в models / parent.py я определяю свойство как -

@property
def referred_values(self):
 return self.child_set.all()

Это дает мне ошибку -

AttributeError: 'Parent' object has no attribute 'child_set'

Но если я импортирую дочерний класс в любой файл вмое приложение работает нормально.Это ожидаемое поведение или я что-то здесь упускаю?

Заранее спасибо.

1 Ответ

0 голосов
/ 22 мая 2018

Хорошо установить значение related_name напрямую

some_ref = models.ForeignField(Parent, related_name='childs')

и использовать дочерние элементы, установленные вместо child_set (больше по-английски)

Также вы можете использовать:

 some_ref = models.ForeignField(to='parent_app.Parent', related_name='childs')

иВам не нужно импортировать модели «Родитель-ребенок»

Также:

class Parent(models.Model): 

insted of

 class Parent:

Но в вашем случае, я думаю, вы забыли добавить модель Child в модели/__init__.py

...