0

我正在尝试使用 Twitter-Bootstrap 模式运行 django 表单。我想知道/表单提交后我应该怎么做才能返回。我的viewstemplates在下面。

网址.py

urlpatterns = patterns('myapp.views',
    url(r'^$', 'main'),
    url(r'^add/', 'form_add'),
)

视图.py

def main(request):
    if request.method == 'POST':
        form = MyModelForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            request.session['name'] = name
            mm = MyModel.objects.create(name=name)
            mm.save()
            return HttpResponseRedirect('/add') # Redirect after POST
    else:
        form = MyModelForm()
    args = {}
    args['last_item'] = MyModel.objects.all().order_by('pk').reverse()[0]
    args['form'] = form
    return render(request, 'form.html', args)

def form_add(request):
    args = {}
    name = request.session['name']

    return render(request, 'add.html', args)

表单.html

{% extends "base.html" %}

{% block content %}
<button type="button" data-toggle="modal"
        data-target="#myModal1">Launch modal</button>

<div class="modal" id="myModal1" tabindex="-1" role="dialog"
     aria-labelledby="myModal1Label" aria-hidden="true" style="display: none">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModal1Label">Modal header</h3>
  </div>
  <div class="modal-body">
    <form method="POST" id="" action="">
      {% csrf_token %}
      {{ form.as_p }}
      <button>Submit</button>
    </form>
  </div>
</div>

<p>Last item: {{ last_item }}</p>
{% endblock %}

{% block scripts %}
{% endblock %}
4

1 回答 1

3

评论转换为答案。

HttpResponseRedirect('/')而不是'/add'

于 2012-09-29T05:20:48.460 回答