我是Django的新手并试图将作者姓名传递给视图并根据作者姓名过滤出引用对象.这是代码:
models.py
class Author(models.Model):
author_name = models.CharField(max_length=50, default='unknown')
author_info = models.TextField(max_length=1000)
class Quote(models.Model):
author = models.ForeignKey(Author)
quote = models.TextField(max_length=500)
category= models.ForeignKey(Category)
pub_date = models.DateTimeField('date published')
Run Code Online (Sandbox Code Playgroud)
urls.py:
url(r'^quotes/(?P<name>\w+)/$', 'quotes.views.quotesbyauthor'),
Run Code Online (Sandbox Code Playgroud)
views.py
def quotesbyauthor(request, name):
aquotelist = Quote.objects.filter(author__exact = name)
return render_to_response(quotes_by_author.html, {'aquotelist': aquotelist })
Run Code Online (Sandbox Code Playgroud)
但是当我尝试获取http://127.0.0.1:8000/quotes/you/ ('你'是测试作者对象,已经创建)时,我收到此错误
ValueError at /quotes/you/
invalid literal for int() with base 10: 'you'
Request Method: GET
Request URL: http://127.0.0.1:8000/quotes/you/
Django Version: 1.3.1
Exception Type: ValueError
Exception Value:
invalid literal for int() with base 10: 'you'
Exception Location: …Run Code Online (Sandbox Code Playgroud)