学习django,最近无法修复此错误。错误提示:
'tuple' object has no attribute 'title'.
我的views.py文件如下:
def post_detail(request):
instance = get_object_or_404(Post, id=3),
context = {"instance": instance,
"title": instance.title # Line of error
}
return render(request, "post_detail.html", context)
模板文件post_detail.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Post Details</title>
</head>
<body>
<h1>
{{ title }} logged in.<br><br></h1>
{{instance.title}}<br>
{{instance.content}}<br>
{{instance.updated}}<br>
{{instance.timestamp}}<br>
{{instance.id}}<br><br>
</body>
</html>
models.py
class Post(models.Model):
title = models.CharField(max_length=120)
content = models.TextField()
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False,auto_now_add=True)
def __str__(self):
return self.title
有人可以指出我要去哪里了吗?
答案 0 :(得分:3)
您写:
instance = get_object_or_404(Post, id=3),
# ^ comma
请注意该行末尾的逗号(,
)。这意味着您将get_object_or_404(..)
调用的结果包装到 singleton 元组(一个元素中,恰好个)。因此,如果结果为42
(当然不可能在此处),则通过在末尾写逗号来构造元组(42,)
。
如果您删除逗号,则instance
将具有函数调用本身的结果。