【发布时间】:2015-12-01 14:29:15
【问题描述】:
我想在同一页面的同一模型中使用多个表单。
好吧,让我们放轻松。
我有具有 3 个属性(网络、网址和图像)字符字段的社交模块。 我在社交数据库(Facebbok、Twitter、Youtube、Pinterest)中添加了 4 个值
在设置视图(settings.html)中,我希望拥有所有 4 个表单(用于 Facebook、Twitter 等)来编辑它们。
类似的东西:
Facebook:文本输入(包含当前的 facebook url)
Youtube:文本输入(包含当前 youtube url)
等等
所以当我转到 settings.html 时,我可以更改、更新所有网络的社交网址。
我对常规设置模块有类似的东西(有 3 个字段,标题、标签、描述和 1 个属性,因为网站有 1 个标题、1 个标签和 1 个描述)。对于这个非常简单,我可以使用 get_object_or_404 因为设置模块只有 1 个值,我可以选择它.. 但问题是社交模块有更多的值,我想在我的页面上有来自它们的所有表单,所以我可以编辑如何我想要的。
views.py
def settings(request):
sidebar_items = Sidebar.objects.order_by('position')
social_items = Social.objects.order_by('network')
settings = get_object_or_404(Settings, pk = 1)
if request.method == "POST":
form_settings = SettingsForm(request.POST, instance = settings)
if form_settings.is_valid():
settings = form_settings.save(commit = False)
settings.save()
return HttpResponseRedirect('/dashboard/settings')
else:
form_settings = SettingsForm(instance = settings)
context = {'sidebar_items' : sidebar_items, 'form_settings' : form_settings, 'social_items' : social_items}
return render(request, 'dashboard/settings.html', context)
【问题讨论】:
-
是什么阻止您在上下文中添加更多表单?..