首页 > 解决方案 > 为什么我的 python 类变量(例如 Post)不能在类中用于声明变量。- django

问题描述

我在尝试运行服务器时不断收到错误(python manage.py runserver)错误是 nameError 并说 Post 未定义。

这是来自models.py

from django.db import models

class Post(models.Model):
    posts = Post.objects.all()
    title = models.CharField(max_length=150, db_index=True)
    slug = models.SlugField(max_length=150, unique = True)
    body = models.TextField(blank=True, db_index = True)
    date_pub = models.DateTimeField(auto_now_add=True)
    

    def __str__(self):
        return self.title

这是来自 settings.py

from django.shortcuts import render
from blog.models import Post

# # Create your views here.

def home(request):
    return render(request, 'blog/index.html')

def index(request):
    posts = Post.objects.all()
    return render(request, 'blog/index.html', context={'posts': posts})


  File "C:\Users\MaxLe\Desktop\My_Django_Stuff\blogengine\blog\models.py", line 9, in Post
posts = Post.objects.all()  NameError: name 'Post' is not defined NameError: name 'Post' is not defined

感谢所有帮助,因为我只是想站起来。谢谢。

标签: pythondjangodatabase

解决方案


由于您正在访问Post类变量定义中的类,即从模型中引发错误。posts = Post.objects.all(). 删除这将解决NameError


推荐阅读