2012-02-27 129 views
1

我刚开始学习django。我从django模型创建了一个表单。在点击提交按钮数据被存储在数据库中。现在,我想要的是像下面给出的一个:如何将表单提交的参数作为参数传递给函数django

#view.py 
def contact(request): 
    if request.method == 'POST': 
    form = UserForm(request.POST) 
    if form.is_valid(): 
      user = form.save() 
      return HttpResponseRedirect("/contact/create_db") 

#urls.py 
(r'^contact/$', views.contact), 
(r'^contact/create_db$', views.do_create), 

现在,当我在views.py定义do_create功能我要传递的参数(用户表单的用户数据)这样的:

def do_create(request, password, dbname, admin_password, confirm_password, demo_data=False, language=None, **kw): 

这是可能使用django。这怎么能实现。

回答

2

你在这里问的是如何在随后的视图中获取保存的user的值。

好吧,这很简单。一旦用户被保存,它(像任何模型实例)获得一个pk值。您可以在后续视图的网址中使用它。

url(r'^contact/create_db/(?P<user_id>\d+)/$', views.do_create, 'do_create'), 

contact

from django.shortcuts import redirect 

... 

user = form.save() 
return redirect('do_create', kwargs={'user_id': user.pk}) 

而且在do_create

def do_create(request, user_id): 
    user = User.objects.get(pk=user_id) 

注意我在URL名称和参数传递到redirect的方式,而不是硬编码URL。

1

您不需要将它们传递到视图中。你想把它们传递给一个表单。并且您已经在执行此操作:

form = UserForm(request.POST) 

您将POST数据传递到表单中。如果您想对此数据进行操作,请在表单验证后使用form.cleaned_data字典。阅读docs也是一个好主意。

+0

Acutally我的问题是我如何检索提交的数据在另一个功能不在相同的功能。请注意,作为回报,HttpResponseRedirect(“/ contact/create_db”) urls.py中的create_db将使用另一个名为do_create的函数。它在这个do_create函数中,我将检索我提交的数据。送我的英语 – Inventillect 2012-02-27 08:50:39

+1

@ user1053786你不需要在这里重定向。用'form.save'方法来保存东西。 – DrTyrsa 2012-02-27 08:54:35

相关问题