获取 title 一直提示这个错误 AttributeError: 'QuerySet' object has no attribute 'title' 但是明明库里面有这个 title 字段的
# Create your models here.
class article(models.Model):
title = models.CharField(u'标题', max_length=60)
category = models.CharField(u'标签', max_length=10, null=False)
createtime = models.DateTimeField(u'createtime', auto_now_add=True)
content = models.TextField(u'内容', blank=True, null=True)
def __str__(self):
return self.title
class mete:
ordering = ['-createtime_time']
class Tag(models.Model):
tag_name = models.CharField(max_length=10)
def __str__(self):
return self.tag_name
1
virusdefender 2016-09-11 15:18:54 +08:00
QuerySet 相当于[Model, Model, ...]
你需要遍历或者使用 get 方法 |
2
cxbats 2016-09-11 15:19:59 +08:00
这一段看起来没问题,猜测问题在视图里,可能是你在该用 `get` 的地方用了 `filter`
|
3
lovebeyondalways OP @cxbats @virusdefender
def index(request): post = article.objects.all() postlist = ("title = %s, category = %s, creatime = %s, content = %s" % (post.title, post.category, post.creatime, post.content)) return render(request, 'index.html', {'postlist': postlist}) 前辈们帮看下 |
4
cxbats 2016-09-11 15:32:48 +08:00 1
post = article.objects.all()
这一句的返回值是 QuerySet ,你想获得文章列表需要遍历,去看看 https://docs.djangoproject.com/en/1.10/topics/db/queries/ 吧 |
5
lovebeyondalways OP @cxbats 谢谢 这就去看
|
6
xavierskip 2016-09-11 15:53:09 +08:00
article.objects.all() 获取的是一个对象列表呀。
[< article: title1>,< article: title2>,< article: title3>,< article: title4> ] |
7
laoyur 2016-09-11 16:35:45 +08:00
@xavierskip 获得的是 QuerySet ,自己看文档去
另外, class mete: ordering = ['-createtime_time'] 这是什么鬼,不是应该是 class Meta 嘛 |
8
lovebeyondalways OP @laoyur 这就尴尬了
|
9
lovebeyondalways OP 已经通过遍历解决了 谢谢楼上
|
10
saxon 2016-09-11 18:24:31 +08:00
答主 是自学还是? 通过神马途径熟悉 django 呢 能否加个好友 交流一下
|
11
lovebeyondalways OP @saxon 我是自学中,没有完整的编程学习经验,通过廖雪峰的教材入门,然后看 djangobook ,看 django 的小项目开发,如博客这种,现在就是在练习做一个博客
|
12
xavierskip 2016-09-11 23:11:49 +08:00
@laoyur 是的,一个可以遍历的对象。不严谨了,打印出来长那样。
|
13
NaVient 2016-09-12 09:54:49 +08:00
@lovebeyondalways model 有改动吗,改动之后要先 migrate 。另外少用%s,多用 format 。
|
14
wind3110991 2016-09-12 23:14:06 +08:00
.....for 一下就好
|