django 模型设计问题

2016-09-11 15:11:34 +08:00
 lovebeyondalways

获取 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
2874 次点击
所在节点    Python
14 条回复
virusdefender
2016-09-11 15:18:54 +08:00
QuerySet 相当于[Model, Model, ...]

你需要遍历或者使用 get 方法
cxbats
2016-09-11 15:19:59 +08:00
这一段看起来没问题,猜测问题在视图里,可能是你在该用 `get` 的地方用了 `filter`
lovebeyondalways
2016-09-11 15:26:06 +08:00
@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})
前辈们帮看下
cxbats
2016-09-11 15:32:48 +08:00
post = article.objects.all()
这一句的返回值是 QuerySet ,你想获得文章列表需要遍历,去看看 https://docs.djangoproject.com/en/1.10/topics/db/queries/
lovebeyondalways
2016-09-11 15:44:55 +08:00
@cxbats 谢谢 这就去看
xavierskip
2016-09-11 15:53:09 +08:00
article.objects.all() 获取的是一个对象列表呀。
[< article: title1>,< article: title2>,< article: title3>,< article: title4> ]
laoyur
2016-09-11 16:35:45 +08:00
@xavierskip 获得的是 QuerySet ,自己看文档去

另外,
class mete:
ordering = ['-createtime_time']

这是什么鬼,不是应该是 class Meta 嘛
lovebeyondalways
2016-09-11 17:03:55 +08:00
@laoyur 这就尴尬了
lovebeyondalways
2016-09-11 17:05:11 +08:00
已经通过遍历解决了 谢谢楼上
saxon
2016-09-11 18:24:31 +08:00
答主 是自学还是? 通过神马途径熟悉 django 呢 能否加个好友 交流一下
lovebeyondalways
2016-09-11 21:12:08 +08:00
@saxon 我是自学中,没有完整的编程学习经验,通过廖雪峰的教材入门,然后看 djangobook ,看 django 的小项目开发,如博客这种,现在就是在练习做一个博客
xavierskip
2016-09-11 23:11:49 +08:00
@laoyur 是的,一个可以遍历的对象。不严谨了,打印出来长那样。
NaVient
2016-09-12 09:54:49 +08:00
@lovebeyondalways model 有改动吗,改动之后要先 migrate 。另外少用%s,多用 format 。
wind3110991
2016-09-12 23:14:06 +08:00
.....for 一下就好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/305463

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX