【问题标题】:Django: Class has no 'objects' memberDjango:类没有“对象”成员
【发布时间】:2020-10-19 13:05:41
【问题描述】:

models.py

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User

class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE) 

def __str__(self):
    return self.title

views.py

from django.shortcuts import render
from .models import Post

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

顶部:第 4 行出现错误:*Class 'Post' has no 'objects' member - pylint(no-member)。我试图迁移它,但问题没有解决。但在我阅读的 Django 文档中:

如果你不添加自己的Manager,Django会添加一个包含默认Manager实例的属性对象。

(https://docs.djangoproject.com/en/3.0/ref/models/class/)

我阅读了有关此问题的所有 Stack Overflow 帖子,但没有解决方案。我(我使用 VSC)尝试安装 pylint-django,重新安装 pylint 和 pip ...。但这里看起来不仅仅是一个 linter 警告,因为在服务器上(调试为真)出现此错误:

Error during template rendering
In template C:\(...)\web\templates\web\base.html, error at line 9

int() argument must be a string, a bytes-like object or a number, not'NoneType'

在这一行:

如果我将 view.py 文件中的错误行注释掉,则该站点可以正常工作。我还尝试使用虚拟数据作为有效的上下文来渲染视图。如果我使用 shell 来查看我的帖子数据库,则没有问题:

壳牌:

In [1]: from web.models import Post

In [2]: Post.objects.all()
Out[3]: <QuerySet [<Post: Title 1>, <Post: Title 2>]>

已修复:问题是我的代码中另一个地方的错误。这只是一个 pylint 错误。

【问题讨论】:

  • Class 'Post' has no 'objects' member - pylint(no-member) 这是一个pylint错误,而不是真正的python错误。在这种情况下,我认为您可以忽略它。
  • 问题是视图 /meldungen 无法处理我通过 shell 脚本告诉的错误。
  • 您确定这是正确的模板吗?第 9 行似乎没有任何 int() 调用。
  • 是的,这是我的基本模板中的 head 标签,我知道,这是我的问题,因为我不明白错误来自哪里。
  • 你能给我们看看web/meldungen.html模板吗?

标签: python django django-models django-views backend


【解决方案1】:

这只是一个 pylint 错误,不用担心。

【讨论】:

  • 但是我的页面/meldungen 的错误不起作用
【解决方案2】:

知道了!在我的模板中有错误(post.id)

【讨论】:

  • 模板中的错误是如何导致linter错误的?我面临同样的问题。我的代码有效,但我到处都有 linter 错误,而且很烦人。我在 git 上按照以下帖子切换到 Pylance,但错误仍然存​​在。 github.com/microsoft/vscode-python/issues/14648
猜你喜欢
  • 1970-01-01
  • 2017-12-21
  • 2020-02-03
  • 2021-06-10
  • 1970-01-01
  • 2020-10-14
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多