python – Django:’str’对象没有属性’user’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Django:’str’对象没有属性’user’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1654字,纯文字阅读大概需要3分钟。
内容图文
![python – Django:’str’对象没有属性’user’](/upload/InfoBanner/zyjiaocheng/756/738d62fbd278425995cfa56cae4e80cc.jpg)
这是我的视图代码:
@login_required
def get_top(type):
o = Work.objects.filter(types = "Fan Fiction").order_by("-date_updated")[:10]
list = []
for o in o:
l.title = o.title
l.href = "/" + o.id
list.append(l)
return l
@login_required
def main_home(request):
fanfiction = get_top("ff")
poetry = get_top("pw")
originalwork = get_top("ow")
return render_to_response("Main/main_home.html", {'STATIC_URL':STATIC_URL, "poetry":poetry, "fan":fanfiction, "original":originalwork})
这是模型的代码:
class Work(models.Model):
title = models.CharField(max_length=30)
summery = models.TextField()
user = models.ForeignKey(User)
date_published = models.DateField()
date_updated = models.DateField()
one_shot = models.BooleanField()
completed = models.BooleanField()
TYPES = (
('FF', 'Fan Fiction'),
('OF', 'Original Work'),
('PW', 'Poetry Work'),
)
types = models.CharField(max_length=2, choices=TYPES)
fandom1 = models.ForeignKey(Book, blank = True, null= True, related_name='f_1')
fandom2 = models.ForeignKey(Book, blank = True, null= True, related_name='f_2')
def __unicode__(self):
return self.title + '-' + self.user.email
这是错误:’str’对象在“get_top(”ff“)处没有属性’user’”
解决方法:
请删除get_top方法的@login_required装饰器.
这是尝试做的,@ logininquired尝试验证该用户是否已登录.这是试图在ff中找到一个用户对象实例,这是一个str因此是堆栈跟踪.通常@login_required从请求obj获取User,但是因为你没有在get_top中传递它,因此错误.
我的建议是你应该在views.py中维护一组方法,这些方法链接到urls.py中的API网址,其中一些可能需要@login_required.另一组方法是辅助方法(如get_top).这些不会暴露给外界(因此不需要@login_required).
如果必须在内部和外部公开get_top,那么get_top的第一个参数必须是请求对象,然后是其他参数.
内容总结
以上是互联网集市为您收集整理的python – Django:’str’对象没有属性’user’全部内容,希望文章能够帮你解决python – Django:’str’对象没有属性’user’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。