Как мне импортировать модель из другого приложения в Django?

#python #django

#python #django

Вопрос:

Итак, в моем проекте book_letter у меня есть приложение с именем contents . Внутри него у меня есть модель с именем Book . Как показано ниже.

 class Book(models.Model):
    objects = models.Manager()
    title = models.CharField(max_length = 30)
    author = models.CharField(max_length = 20)

    def __str__(self):
        return self.title
 

И у меня есть другое приложение recommendation с именем model Recommendation . Как показано ниже.

 from book_letter.contents.models import Book

class Recommendation(models.Model):
    objects = models.Manager()
    source = models.ForeignKey("Book", related_name='book', on_delete=models.CASCADE)
 

Однако при запуске я python manage.py runserver получаю сообщение об ошибке

 ModuleNotFoundError: No module named 'book_letter.contents'
 

Я не вижу, что я сделал не так. Есть идеи? Спасибо 🙂

Дерево каталогов ( synergy_django это название проекта. Я назвал это book_letter для удобства.)

введите описание изображения здесь

Комментарии:

1. Я думаю, что у вас нет contents папки в вашем book_letter приложении. не могли бы вы отправить свое дерево каталогов, пожалуйста?

2. @SirSaleh Я добавил дерево. Спасибо 🙂

3. вы использовали django-admin startapp для создания приложений? просто хочу убедиться, что у вас есть __init__ файл в каждом каталоге приложения

4. @twrought Да, я создал приложения с startapp помощью command, и да, у меня есть __init___ файл в каждом каталоге приложения. 🙁

5. Django ожидает, что вы импортируете эту модель, пройдя весь путь от вашего BASE_DIR — где находится manage.py ? поделиться полным деревом каталогов