我正在构建一个博客应用。而且我正在使用 Django 3.8.1 版本。我被一个问题困住了
Traceback (most recent call last):
File "C:\app\so\lib\site-packages\django\db\models\fields\__init__.py", line 1774, in get_prep_value
return int(value)
The above exception (invalid literal for int() with base 10: 'favicon.ico') was the direct cause of the following exception:
File "C:\app\so\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\app\so\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\app\so\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "C:\app\mains\views.py", line 261, in detail_view
data = get_object_or_404(Post,pk=id)
File "C:\app\so\lib\site-packages\django\shortcuts.py", line 76, in get_object_or_404
return queryset.get(*args, **kwargs)
File "C:\app\so\lib\site-packages\django\db\models\query.py", line 418, in get
clone = self._chain() if self.query.combinator else self.filter(*args, **kwargs)
File "C:\app\so\lib\site-packages\django\db\models\query.py", line 942, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "C:\app\so\lib\site-packages\django\db\models\query.py", line 962, in _filter_or_exclude
clone._filter_or_exclude_inplace(negate, *args, **kwargs)
File "C:\app\so\lib\site-packages\django\db\models\query.py", line 969, in _filter_or_exclude_inplace
self._query.add_q(Q(*args, **kwargs))
File "C:\app\so\lib\site-packages\django\db\models\sql\query.py", line 1358, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "C:\app\so\lib\site-packages\django\db\models\sql\query.py", line 1377, in _add_q
child_clause, needed_inner = self.build_filter(
File "C:\app\so\lib\site-packages\django\db\models\sql\query.py", line 1319, in build_filter
condition = self.build_lookup(lookups, col, value)
File "C:\app\so\lib\site-packages\django\db\models\sql\query.py", line 1165, in build_lookup
lookup = lookup_class(lhs, rhs)
File "C:\app\so\lib\site-packages\django\db\models\lookups.py", line 24, in __init__
self.rhs = self.get_prep_lookup()
File "C:\app\so\lib\site-packages\django\db\models\lookups.py", line 76, in get_prep_lookup
return self.lhs.output_field.get_prep_value(self.rhs)
File "C:\app\so\lib\site-packages\django\db\models\fields\__init__.py", line 1776, in get_prep_value
raise e.__class__(
Exception Type: ValueError at /favicon.ico
Exception Value: Field 'id' expected a number but got 'favicon.ico'.
views.py
def detail_view(request,id):
data = get_object_or_404(Post,pk=id)
comments = data.comments.order_by('-created_at')
new_comment = None
if request.method == 'POST':
comment_form = CommentForm(data=request.POST)
if comment_form.is_valid():
comment_form.instance.post_by = data
comment_form.instance.commented_by = request.user
comment_form.instance.active = True
new_comment = comment_form.save()
return redirect('detail_view',id=id)
else:
comment_form = CommentForm()
context ={'data':data,'comments':comments,'new_comment':new_comment,'comment_form':comment_form}
return render(request, 'show_more.html', context )
问题
一切正常。每个浏览器页面都打开良好。但是当我启动服务器并在浏览器中打开一些页面时,终端服务器应该显示 Server Activity
BUT 它在每个活动中都显示 Field 'id' expected a number but got 'favicon.ico'.
(我点击的每个页面)。请告诉这个终端服务器有什么问题。
任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:1)
def detail_view(request,id): id = int(id)
data = get_object_or_404(Post,pk=id)
comments = data.comments.order_by('-created_at')
new_comment = None
if request.method == 'POST':
comment_form = CommentForm(data=request.POST)
if comment_form.is_valid():
comment_form.instance.post_by = data
comment_form.instance.commented_by = request.user
comment_form.instance.active = True
new_comment = comment_form.save()
return redirect('detail_view',id=id)
else:
comment_form = CommentForm()
context ={'data':data,'comments':comments,'new_comment':new_comment,'comment_form':comment_form}
return render(request, 'show_more.html', context )