У меня есть init.py, form.py, main.py. , Manage.py, models.py, myapp.forms, settings.py и README.md, согласно словам Табнина, мне нужно было это запустить.
Каждый раз, когда я захожу в запустить веб-сайт, вместо того, чтобы иметь доступ к нему на 127.0.0.1:8000, он не запускается и в конце продолжает выдавать мне ModuleNotFoundError: Нет модуля с именем myapp.forms, несмотря на то, что он есть, установлен настолько правильно, насколько я могу судить, с помощью Пылинт, а я в растерянности.
Содержание README:
Код: Выделить всё
PizzaProject/
├── myapp/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py # Your OrderForm should be here
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── PizzaProject/
├── manage.py
└── settings.py
Код: Выделить всё
"""
This module defines the configuration for the myapp Django app.
"""
from django.apps import AppConfig
class MyappConfig(AppConfig):
"""
Configuration class for the myapp Django app.
"""
name = 'myapp'
Код: Выделить всё
from django import forms
from django.db import models # Import models from django.db instead of django.models
class OrderForm(forms.ModelForm):
"""Form for creating and updating Order instances."""
class Meta:
"""Meta class for OrderForm."""
model = models.Model # Use models.Model instead of django.models.Model
fields = ['pizza', 'toppings', 'customer_name', 'customer_phone']
Код: Выделить всё
from django.shortcuts import render, redirect
from myapp.forms import OrderForm
from myapp.models import Pizza, Topping
def menu_view(request):
"""View function for the menu page."""
pizzas = Pizza.objects.filter(is_available=True)
toppings = Topping.objects.filter(is_available=True)
return render(request, 'menu.html', {'pizzas': pizzas, 'toppings': toppings})
def confirm_order_view(request):
"""View function for the order confirmation page."""
if request.method == 'POST':
form = OrderForm(request.POST)
if form.is_valid():
order = form.save(commit=False)
order.calculate_total()
order.save()
form.save_m2m() # Save ManyToMany toppings
return redirect('order_success')
else:
form = OrderForm()
return render(request, 'confirm.html', {'form': form})
def success_view(request):
return render(request, 'order_success.html')
Код: Выделить всё
"""This module contains test cases for the menu view."""
import django.test
from myapp.models import Pizza, Topping
class MenuViewTestCase(django.test.TestCase):
def setUp(self):
self.factory = django.test.RequestFactory()
Pizza.objects.create(name="Margherita", is_available=True)
Pizza.objects.create(name="Pepperoni", is_available=False)
Topping.objects.create(name="Cheese", is_available=True)
Topping.objects.create(name="Mushrooms", is_available=False)
Код: Выделить всё
from django import forms
from django.db import models # Import models from django.db instead of django.models
class OrderForm(forms.ModelForm):
"""Form for creating and updating Order instances."""
class Meta:
"""Meta class for OrderForm."""
model = models.Model # Use models.Model instead of django.models.Model
fields = ['pizza', 'toppings', 'customer_name', 'customer_phone']
Код: Выделить всё
INSTALLED_APPS = [
'myapp.apps.MyappConfig', # Add your app here#
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
После ввода «python Manage.py startapp myapp» в терминале проекта через PyCharm он пытается запустить приложение, но в конце снова говорит: «ModuleNotFoundError: Нет модуля с именем myapp.forms >.
Изображение журнала ошибок
Код: Выделить всё
(.venv) PS C:\Users\ME\PycharmProjects\PizzaProject> python manage.py startapp myapp
INFO: Will watch for changes in these directories: ['C:\\Users\\ME\\PycharmProjects\\PizzaProject']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [16444] using WatchFiles
Process SpawnProcess-1:
Traceback (most recent call last):
File "C:\Users\ME\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Users\ME\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\ME\PycharmProjects\PizzaProject\.venv\Lib\site-packages\uvicorn\_subprocess.py", line 80, in subprocess_started
target(sockets=sockets)
File "C:\Users\ME\PycharmProjects\PizzaProject\.venv\Lib\site-packages\uvicorn\server.py", line 65, in run
return asyncio.run(self.serve(sockets=sockets))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ME\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "C:\Users\ME\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "C:\Users\ME\PycharmProjects\PizzaProject\main.py", line 2, in
from myapp.forms import OrderForm
ModuleNotFoundError: No module named 'myapp.forms'
Если кто-нибудь знает, почему он так себя ведет, буду очень признателен за помощь.
Подробнее здесь: https://stackoverflow.com/questions/792 ... led-django
Мобильная версия