Render_to_response多个args

时间:2015-05-21 14:38:03

标签: python django

我是Django的新手,我正试图在一个能够编辑它的网页上显示我的数据库。

这是我的views.py

   def task1(request):
       if request.POST:
           form = AuthorForm(request.POST)
           if form.is_valid():
               form.save()
           return render(request,'tasks/index.html')
       else:
           form = AuthorForm()
       args = {}
       args.update(csrf(request))
       args['form'] = form
       return render_to_response('tasks/task1.html', {'authors':Author.objects.all()})

这样我可以在网页上打印我的数据库

但我也希望能够为其添加新记录

我用过

return render_to_response('tasks/task1.html',args)

但我怎样才送两个?据我所知,必须有一本字典。

这是一个模板

{% extends "tasks/index.html" %}

{% load bootstrap3 %}
{% load staticfiles %}
{% bootstrap_css %}
{% bootstrap_javascript %}

{% bootstrap_messages %}


{% block tasks %}

<p>31231</p>
<form action="/task1/" method="post">{% csrf_token %}
    <ul>
        {{ form.as_table}}
    </ul>
    <input type="submit" value="Create" />
</form>

{% if authors.count > 0 %}
    {% for author in authors %}
    <ul>
        {{author.id}}  {{author.name}} {{author.body}}
    </ul>
    {{% endfor %}
{{% endif %}
{% endblock %}

2 个答案:

答案 0 :(得分:1)

args = {}
args.update(csrf(request))

args['form'] = form
args['authors'] = Author.objects.all()
return render_to_response('tasks/task1.html',args)

答案 1 :(得分:0)

return render_to_response('tasks/task1.html', {'authors':Author.objects.all(),'foo':foo,'bar':bar})

args = {'authors':Author.objects.all(),'foo':foo,'bar':bar}
return render_to_response('tasks/task1.html',args)

请注意,您只需使用render代替render_to_response来自django&gt; = 1.3