【发布时间】:2016-08-15 17:04:43
【问题描述】:
当我尝试从MySQL 表中获取数据并将其分配给queryset 时,我得到一个TypeError,在Django ModelViewSet 中使用以下代码
def queryset(self, request):
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='password123', db='sakila')
cur = conn.cursor()
cur.execute("SELECT city_id, city, country_id FROM city")
json.dumps(list(cur))
cur.close()
conn.close()
它给了我以下错误
异常值: “方法”对象不可迭代
我做错了什么?有什么解决办法吗?我是个菜鸟,所以如果你也能解释一下解决方案,那就太好了。
Traceback:
File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view
58. return view_func(*args, **kwargs)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\rest_framework\viewsets.py" in view
87. return self.dispatch(request, *args, **kwargs)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\rest_framework\views.py" in dispatch
466. response = self.handle_exception(exc)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\rest_framework\views.py" in dispatch
463. response = handler(request, *args, **kwargs)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\rest_framework\mixins.py" in list
48. return Response(serializer.data)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\rest_framework\serializers.py" in data
674. ret = super(ListSerializer, self).data
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\rest_framework\serializers.py" in data
239. self._data = self.to_representation(self.instance)
> File "C:\Users\Naila Akbar\AppData\Local\Programs\Python\Python35-32\lib\site-packages\rest_framework\serializers.py" in to_representation
614. self.child.to_representation(item) for item in iterable
> Exception Type: TypeError at /cities/
> Exception Value: 'method' object is not iterable
【问题讨论】:
-
请包含您的异常的完整回溯,因为不清楚该错误来自何处。
-
@MartijnPieters 我不知道如何包含回溯但我尝试..
-
我看不到它在您发布的代码中发生的位置,但由于错误是
'method' object is not iterable并且您有一个名为queryset的方法和一个名为queryset的本地变量我怀疑他们在某个地方混在一起,但我不知道在哪里。尝试更改其中一个名称,看看它是否会发生任何变化。 -
@nephlm 试过了..还是一样
标签: python mysql django django-rest-framework