我是Django的新手,嘗試將作者姓名傳遞給視圖,並根據作者姓名篩選出引用對象。這裏是代碼:Django:int()的基數爲10的無效字面積
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')
urls.py:
url(r'^quotes/(?P<name>\w+)/$', 'quotes.views.quotesbyauthor'),
views.py
def quotesbyauthor(request, name):
aquotelist = Quote.objects.filter(author__exact = name)
return render_to_response(quotes_by_author.html, {'aquotelist': aquotelist })
不過我,當我試圖讓得到這個錯誤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: /home/qliq/djenv/lib/python2.6/site-packages/django/db/models/fields/__init__.py in get_prep_value, line 479
Python Executable: /home/qliq/djenv/bin/python
Python Version: 2.6.6
Python Path:
['/home/qliq/djenv/quoteapp',
'/home/qliq/djenv/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg',
'/home/qliq/djenv/lib/python2.6/site-packages/pip-0.7.2-py2.6.egg',
'/home/qliq/djenv/lib/python2.6',
'/home/qliq/djenv/lib/python2.6/plat-linux2',
'/home/qliq/djenv/lib/python2.6/lib-tk',
'/home/qliq/djenv/lib/python2.6/lib-old',
'/home/qliq/djenv/lib/python2.6/lib-dynload',
'/usr/lib/python2.6',
'/usr/lib/python2.6/plat-linux2',
'/usr/lib/python2.6/lib-tk',
'/home/qliq/djenv/lib/python2.6/site-packages']
我感謝您的幫助來解決這個問題。
這是一個粘貼錯誤,你的.html模板沒有引號嗎? – jdi 2011-12-17 21:41:32
也請發佈更完整的回溯,因爲它應該告訴你錯誤的特定行和上下文。嘗試將名稱設置爲缺省關鍵字,例如quotesbyauthor(request,name ='') – jdi 2011-12-17 21:45:58
@jdi,我用更詳細的錯誤消息更新了問題。另外,我在模板名稱周圍添加了引號,但它沒有效果。 – qliq 2011-12-17 21:51:47