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.