我正在制作一个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>
这只需要返回我在添加信息时创建的管理页面。
答案 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')