ModuleNotFoundError: Нет модуля с именем 'expenseswebsite.userpreferences'

Добрый день, уважаемое сообщество! Получил следующую ошибку в терминале PyCharm:

File "C:\NewDjangoProjects\django-income-expense-website\expenseswebsite\expenses\views.py", line 9, in <module>from expenseswebsite.userpreferences.models import UserPreference ModuleNotFoundError: No module named 'expenseswebsite.userpreferences'

Здесь ниже мой файл expenses\views.py:

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .models import Category, Expense
from django.contrib import messages
from django.contrib.auth.models import User
from django.core.paginator import Paginator
import json
from django.http import JsonResponse
from expenseswebsite.userpreferences.models import UserPreference  

Здесь ниже мой файл UserPreference\models.py:

from django.db import models
from django.contrib.auth.models import User


class UserPreference(models.Model):
    user = models.OneToOneField(to=User, on_delete=models.CASCADE)
    currency = models.CharField(max_length=255, blank=True, null=True)

    def __str__(self):
        return str(user)+'s preferences'

Иерархия:

django-income-expense-website
\
 \__expenseswebsite
        \   \  \  \  \_authentication(migr, models, views etc..)
         \   \  \  \__expenses       (migr, models, views etc..)
          \   \  \____expenseswebsite(migr, models, views etc..)
           \   \______templates
            \_________userpreferences(migr, models, views etc..)

Все миграции перенесены/применены успешно, и в окне PyCharm Editor нет никакого красного подчеркнутого текста, так что же не так с этим импортом?

Спасибо за любую помощь!

Корнем Python вашего приложения является expenseswebsite, поэтому вы должны импортировать его с помощью:

from userpreferences.models import UserPreference

Более того, чтобы приложение загрузилось правильно, 'userpreferences' должен быть в INSTALLED_APPS перед приложением 'expenses', поэтому:

# settings.py

# ⋮

INSTALLED_APPS = [
    # ⋮,
    'userpreferences',
    # ⋮,
    'expenses',
    # ⋮
]

# ⋮

Вероятно, вам следует отметить папку expensewebsite как корневую в вашем проекте PyCharm, чтобы IDE могла помочь с операторами импорта в будущем. Для получения дополнительной информации смотрите раздел Присвоить категорию папке в окне инструмента Project документации по PyCharm.

Вернуться на верх