python - 在 Django 博客中按作者查看文章
问题描述
我正在尝试创建一个视图,允许人们查看特定作者撰写的所有博客文章。这是我正在使用的 URL 模式:
url(r'^user/(?P<username>[\w-]+)/$', views.user_articles, name="user_articles"),
这是我的观点:
def user_articles(request, username):
articles = Article.objects.filter(author=username).order_by('-date')
return render(request, "articles/article_list.html", {'articles': articles})
这是返回错误:
ValueError at /articles/user/danny/
invalid literal for int() with base 10: 'danny'
编辑以添加模型:
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=100, unique=True)
body = HTMLField('Body')
date = models.DateTimeField(auto_now_add=True)
thumb = models.ImageField(default="keys.jpg", blank=True)
author = models.ForeignKey(User, default=None)
danny 是一个有效的用户名,它应该是一个字符串,而不是一个整数,所以我不确定这里出了什么问题。有任何想法吗?
解决方案
考虑到author
,这是一个 ForeignKey auth.User
。
您的查询应该是
Article.objects.filter(author__username=username)
代替 ...Article.objects.filter(author=username)
推荐阅读
- arrays - 从 Monogodb 返回的数据顺序
- android - 如何从方法内部的响应中获取结果?
- qt - 如何从 Qt QML Map 访问 WMS 或 WMTS
- python-3.x - 为什么这个多项式函数会给出截然不同的结果,具体取决于我绘制的点数?
- azure-log-analytics - 是否可以在 Azure Sentinel 中创建日志源健康警报?
- reactjs - 为什么没有添加 Set-Cookie 标头?
- sql - 每家餐厅的独特客户
- python - 遍历两个数据帧并创建一个字典,一个数据帧是在第二个数据帧(值)中找到的字符串中的子字符串
- stackdriver - 将自定义 jmx 指标添加到谷歌云监控 collectd 配置
- groovy - Groovy replaceAll 替换多个半匹配字符串