如何在模板中输入两个视图

时间:2016-06-28 07:40:27

标签: django

我正在尝试创建一个模板,其中包含一个创建内容的表单以及那些东西的列表。如果我有视图

(?!\b19\d\d\b)(?!\b20[01]\d\b)(\b\p{N}+\b)

这就是我所做的。

  1. 我已经尝试def list_of_something(request): list1=something.objects.all() return render(request , 'index.html' ,{'list1':list1}) def post_something(request): form_class=SomethingForm if request.method="POST": form=form_class(request.POST) if form.is_valid(): ......... ........ ........ return render(request, 'post_something.html', {'form': form,}) include放入index.html,它会加载post_something.html但是当它到达{% include "post_something.html" %}时它不会加载它吗?
  2. 我已经查看了基于类的视图,但我不知道如何使用它来执行上述操作。
  3. UPDATE 感谢下面的答案。我做的是将{{form.as_p}}添加到index.html。并将表单的名称传递给视图返回{% include "post_something.html" %}。 另外,将表单操作属性指向post_something视图,它应该可以工作。

2 个答案:

答案 0 :(得分:0)

post_something.html只是模板的名称,您仍然需要传递表单。我假设您正在尝试显示list_of_something视图,因此您需要将该表单包含在该视图的上下文数据中。

return render(request , 'index.html',{'list1':list1, 'form': SomethingForm()})

答案 1 :(得分:0)

当您使用post_something.html标记时,假设index.html的内容将合并到{% include %}。现在,您需要从视图中传递合并模板中的所有变量。它应该是这样的:

return render(request, 
              'index.html',
              {'list1':list1, 'form': form})

您可以根据业务用例定义form