名称“my_class”未定义

问题描述 投票:0回答:1

我最近开始了 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
django django-models django-views django-forms
1个回答
0
投票

在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})
© www.soinside.com 2019 - 2024. All rights reserved.