Форум сайта python.su
Здравствуйте!
У меня две модели - Book и Comment:
book/models.py
class Book(models.Model): #Тут идёт описание полей def comments_count(self): from comment.models import Comment return len(Comment.objects.filter(book=self))
#Импорт стандартных модулей и т.д. from book.models import Book class Comment(models.Model): #Другие поля book = models.ForeignKey(Book, verbose_name='Ссылка на книгу')
Отредактировано dun (Янв. 16, 2015 12:56:22)
Офлайн
class Book(models.Model): #Тут идёт описание полей def comments_count(self): return self.comment_set.all().count()
Офлайн
Прочитал тут, что в моём случае рекомендуется описывать связи между моделями через литералы, например, так:
book/models.py
from comment.models import BookComment class Book(models.Model): title = models.CharField(max_length=300) def comments_count(self): return BookComment.objects.filter(book=self).count()
class BookComment(models.Model): book = models.ForeignKey('book.Book') text = models.TextField()
Отредактировано dun (Янв. 19, 2015 10:55:11)
Офлайн
dunГде?
Прочитал тут
Офлайн
inoksНа StackOverflow было обсуждение, человек посоветовал именно литералы, решение набрало полсотни плюсов.
Офлайн
Чем обосновал?
Офлайн
Ссылкой на официальную документацию: http://stackoverflow.com/questions/4813293/django-python-circular-model-reference
Офлайн
А так почему нельзя сделать?
comment/models.py
from book.models import Book class BookComment(models.Model): book = models.ForeignKey(Book) text = models.TextField()
class Book(models.Model): title = models.CharField(max_length=300) def comments_count(self): return self.comment_set.count()
Офлайн