请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

TypeError: __init__() takes 1 positional argument but 2 were given

老师,我这里view中使用函数的话一切正常,使用类就报“TypeError: init() takes 1 positional argument but 2 were given”这个错误

使用函数代码如下

import json
from django.http import HttpResponse
from goods.models import Goods

def GoodsListView(request):

    json_list = []
    goods = Goods.objects.all()[:10]
    for good in goods:
        json_dict = {}
        json_dict["name"] = good.name
        json_dict["market_price"] = good.shop_price
        json_list.append(json_dict)
    return HttpResponse(json.dumps(json_list),content_type="application/json")

使用类代码如下

import json
from django.http import HttpResponse
from goods.models import Goods
from django.views import View
class GoodsListView(View):
    def get(self, request):
        json_list = []
        goods = Goods.objects.all()[:10]
        for good in goods:
            json_dict = {}
            json_dict["name"] = good.name
            json_dict["market_price"] = good.shop_price
            # json_dict["add_time"] = good.add_time
            json_list.append(json_dict)
        return HttpResponse(json.dumps(json_list),content_type="application/json")
即使把django.views.View改成django.views.generic.base.View还是一样报错
from django.views.generic.base import View

错误提示如下

?图片描述
不知道是什么问题?

正在回答 回答被采纳积分+3

1回答

bobby 2020-03-31 18:04:34
0 回复 有任何疑惑可以回复我~
  • 提问者 iceps #1
    我这里没有用到Response,只用了HttpResponse
    回复 有任何疑惑可以回复我~ 2020-03-31 23:18:34
  • bobby 回复 提问者 iceps #2
    两者是一样的 都能直接返回json你先修改一下试试有没有报错
    回复 有任何疑惑可以回复我~ 2020-04-01 17:01:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信