Python 异常值:以10为底的int()的文本无效:';id';
这些是我的代码文件 views.pyPython 异常值:以10为底的int()的文本无效:';id';,python,django,django-rest-framework,Python,Django,Django Rest Framework,这些是我的代码文件 views.py import json from django.views.generic import View from django.http import HttpResponse from updates.api.mixins import CSRFExemptMixin from updates.forms import UpdateModelForm from updates.models import Update as UpdateModel fro
import json
from django.views.generic import View
from django.http import HttpResponse
from updates.api.mixins import CSRFExemptMixin
from updates.forms import UpdateModelForm
from updates.models import Update as UpdateModel
from cfeapi.mixins import HttpResponseMixin
class UpdateModelDetailAPIView(HttpResponseMixin, CSRFExemptMixin, View): ## <--- here is the problem
'''
Retreive, Update, Delete
'''
is_json = True
def get_object(self, id=None):
# try:
# obj = UpdateModel.objects.get(id=id)
# except UpdateModel.DoesNotExist:
# obj = None
'''
Below handles DoesNotExist Exception too
'''
qs = UpdateModel.objects.filter(id=id)
if qs.count() == 1:
return qs.first()
return None
def get(self, request, id, *args, **kwargs):
obj = self.get_object(id=id)
# obj = UpdateModel.objects.get(id=id)
# print(obj)
if obj is None:
error_data = json.dumps({'message' : 'Update not found'})
return self.render_to_response(error_data, status=404)
json_data = obj.serialize()
return self.render_to_response(json_data)
form.py---CSRFExemptMixin中的super()引导
from django import forms
from .models import Update as UpdateModel
class UpdateModelForm(forms.ModelForm):
class Meta:
model = UpdateModel
fields = [
'user',
'content',
'image'
]
def clean(self, *args, **kwargs):
data = self.cleaned_data
content = data.get('content', None)
if content == "":
content = None
image = data.get('image', None)
if content is None and image is None:
raise forms.ValidationError('Content or image is required.')
return super().clean(*args, **kwargs)
问题是什么时候我的代码会像这样运行
class UpdateModelDetailAPIView(HttpResponseMixin, View):
它运行得很好,没有显示错误
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\views\generic\base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view
54. return view_func(*args, **kwargs)
File "D:\Django2_byExample_practice\apituts\cfeapi\updates\api\mixins.py" in dispatch
8. return super().dispatch(*args, *kwargs) #super(CSRFExemptMixin, self)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\views\generic\base.py" in dispatch
97. return handler(request, *args, **kwargs)
File "D:\Django2_byExample_practice\apituts\cfeapi\updates\api\views.py" in get
36. obj = self.get_object(id=id)
File "D:\Django2_byExample_practice\apituts\cfeapi\updates\api\views.py" in get_object
29. qs = UpdateModel.objects.filter(id=id)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py" in filter
892. return self._filter_or_exclude(False, *args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py" in _filter_or_exclude
910. clone.query.add_q(Q(*args, **kwargs))
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in add_q
1290. clause, _ = self._add_q(q_object, self.used_aliases)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in _add_q
1318. split_subq=split_subq, simple_col=simple_col,
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in build_filter
1251. condition = self.build_lookup(lookups, col, value)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in build_lookup
1116. lookup = lookup_class(lhs, rhs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\lookups.py" in __init__
20. self.rhs = self.get_prep_lookup()
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\lookups.py" in get_prep_lookup
70. return self.lhs.output_field.get_prep_value(self.rhs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\fields\__init__.py" in get_prep_value
968. return int(value)
Exception Type: ValueError at /api/updates/2/
Exception Value: invalid literal for int() with base 10: 'id'
但当我像下面这样运行它时
class UpdateModelDetailAPIView(HttpResponseMixin, CSRFExemptMixin, View):
它向我显示了错误
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\views\generic\base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view
54. return view_func(*args, **kwargs)
File "D:\Django2_byExample_practice\apituts\cfeapi\updates\api\mixins.py" in dispatch
8. return super().dispatch(*args, *kwargs) #super(CSRFExemptMixin, self)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\views\generic\base.py" in dispatch
97. return handler(request, *args, **kwargs)
File "D:\Django2_byExample_practice\apituts\cfeapi\updates\api\views.py" in get
36. obj = self.get_object(id=id)
File "D:\Django2_byExample_practice\apituts\cfeapi\updates\api\views.py" in get_object
29. qs = UpdateModel.objects.filter(id=id)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py" in filter
892. return self._filter_or_exclude(False, *args, **kwargs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py" in _filter_or_exclude
910. clone.query.add_q(Q(*args, **kwargs))
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in add_q
1290. clause, _ = self._add_q(q_object, self.used_aliases)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in _add_q
1318. split_subq=split_subq, simple_col=simple_col,
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in build_filter
1251. condition = self.build_lookup(lookups, col, value)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\query.py" in build_lookup
1116. lookup = lookup_class(lhs, rhs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\lookups.py" in __init__
20. self.rhs = self.get_prep_lookup()
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\lookups.py" in get_prep_lookup
70. return self.lhs.output_field.get_prep_value(self.rhs)
File "C:\Users\Nitin NiK\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\fields\__init__.py" in get_prep_value
968. return int(value)
Exception Type: ValueError at /api/updates/2/
Exception Value: invalid literal for int() with base 10: 'id'
在块中的
kwargs
之前,您拼错了第二个字符*
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
class CSRFExemptMixin(object):
@method_decorator(csrf_exempt)
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, *kwargs)
选中
super().dispatch(*args,*kwargs)
调用,在那里发送*kwargs
而不是**kwargs您从错误消息中了解到了什么?你有没有试图缩小这个问题的范围?读一读,也许吧。这回答了你的问题吗?你提出的问题帮助我了解了更多关于这方面的事情。