Django - 信息显示但仍然给出错误

时间:2015-10-11 16:14:40

标签: python django

我正在制作一个CRUD,当我尝试添加一个卖单时,这会在我检查结果时反映出来但在添加时会出错。

这里是错误代码:

TypeError at /manage/add_sell_list/

list() takes at most 1 argument (2 given)

Request Method:     POST
Request URL:    http://localhost:8000/manage/add_sell_list/

这里是models.py部分:

class Sell_list(models.Model):
    sell_list_key = models.ForeignKey(User)
    #sell_list_key= models.ForeignKey(Profile)
    object_name = models.CharField(max_length= 150)
    def __str__(self):
        return self.object_name

这里是views.py部分:

@login_required(login_url='/loginuser')
def new_sell_list(request):
    return render(request,'new_sell_list_form.html',{
        'action': 'add_sell_list',
        'button': 'Add',
        })

@login_required(login_url='/loginuser')
def add_sell_list(request):
    new_sell_list_name= request.POST["new_sell_list_name"]
    colectr_user = request.user
    to_save_list= Sell_list(
        object_name = new_sell_list_name,
        sell_list_key = colectr_user
        )
    to_save_list.save()
    return list(request, message= "sell list added!")

这里是url.py

url (r'^manage/new_sell_list/$', 'stock.views.new_sell_list', name='new_sell_list'),
url (r'^manage/add_sell_list/$', 'stock.views.add_sell_list', name='add_sell_list'),

将注册表添加到DB的表单:

<form action="/manage/{{ action }}/" method="post"> 
    <input name="new_sell_list_name" value="{{ sell_list_name }}"><br />
    <input type="submit" value="{{ button }}">
</form>

这只需要返回我在添加信息时创建的管理页面。

3 个答案:

答案 0 :(得分:0)

当您尝试return list(request,message='sell list added!')时,您尝试将请求和消息转换为列表,但是,list()只接受1个参数。

我认为您在尝试返回列表时犯了一个错误,而不是返回渲染或重定向到成功页面或列表页面。

尝试更改它:

return list(request, message= "sell list added!")

对于类似于您使用方法new_sell_list

所做的返回
return render(request,'successful_list_added.html')

或者:

return redirect('redirect_url')

答案 1 :(得分:0)

你不能打这样的另一个观点:

return list(request, message= "sell list added!")

你需要返回一个HTTPResponse,在这种情况下,HTTPResponseRedirect,如下所示:

return redirect(reverse('list_view_namespace', kwargs={ here kwargs, if any}))

答案 2 :(得分:0)

解决了:

return HttpResponseRedirect('/manage')