模型.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
视图.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 查看我的帖子 db 没有问题:
壳:
In [1]: from web.models import Post
In [2]: Post.objects.all()
Out[3]: <QuerySet [<Post: Title 1>, <Post: Title 2>]>
已修复:问题是我代码中另一个位置的错误。这只是一个pylint错误。
