我最近开始了 django 课程,并启动了带有产品注册的登录界面。在同一应用程序中使用这些功能时,一切正常(在本例中,我在用户应用程序中创建了所有内容)。 我创建了产品应用程序,然后开始出现不一致的情况。
views.py
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.http import HttpResponse
from django.contrib import messages
from .import models
@login_required
def ListagemProdutos(request):
ListaItens = classeproduto.objects.all()
return render(request, 'baselist.html', {'produtos': ListaItens})
@login_required
def produtoView(request, id):
item = get_object_or_404(produto, pk=id)
return render(request, 'produto.html', {'produto': item})
url.py
from django.urls import path
from .import views
urlpatterns = [
path('', views.ListagemProdutos, name='listagemprodutos'),
path('produto/<int:id>', views.produtoView, name="produto-view"),
]
和模型.py
from django.db import models
class classeproduto(models.Model):
STATUS = (
('Ativo','Ativo'),
('Inativo','Inativo'),
)
descricaoresumida = models.CharField(max_length=120)
ativo = models.CharField(
max_length=7,
choices=STATUS,
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.descricaoresumida
我已经检查了代码,但没有发现错误=/ 你能帮我吗?
NameError at /produtos/
name 'classeproduto' is not defined
Request Method: GET
Request URL: http://192.168.15.90:8000/produtos/
Django Version: 4.2.4
Exception Type: NameError
Exception Value:
name 'classeproduto' is not defined
Exception Location: C:\Users\Elinton\Desktop\projeto-gestao\gestao\produtos\views.py, line 10, in ListagemProdutos
Raised during: produtos.views.ListagemProdutos
Python Executable: C:\Users\Elinton\AppData\Local\Programs\Python\Python311\python.exe
Python Version: 3.11.4
Python Path:
['C:\\Users\\Elinton\\Desktop\\projeto-gestao\\gestao',
'C:\\Users\\Elinton\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip',
'C:\\Users\\Elinton\\AppData\\Local\\Programs\\Python\\Python311\\DLLs',
'C:\\Users\\Elinton\\AppData\\Local\\Programs\\Python\\Python311\\Lib',
'C:\\Users\\Elinton\\AppData\\Local\\Programs\\Python\\Python311',
'C:\\Users\\Elinton\\AppData\\Roaming\\Python\\Python311\\site-packages',
'C:\\Users\\Elinton\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages']
Server time: Tue, 12 Sep 2023 23:17:59 +0000
在views.py中进行以下更改: 1 - 将
classeproduto
更改为 models.classeproduto
2 - 将 produto
更改为 models.produto
3 - 将 from .import models
更改为 from . import models
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.http import HttpResponse
from django.contrib import messages
from . import models
@login_required
def ListagemProdutos(request):
ListaItens = models.classeproduto.objects.all()
return render(request, 'baselist.html', {'produtos': ListaItens})
@login_required
def produtoView(request, id):
item = get_object_or_404(models.produto, pk=id)
return render(request, 'produto.html', {'produto': item})