【发布时间】:2019-05-13 11:05:53
【问题描述】:
我有一个 Django 库应用程序,其中包含几本书和作者,这是管理员用来创建/更新作者详细信息(名字、姓氏、出生日期、个人资料图片)的 /author/create html 表单,参考 MDN图书馆应用程序。
为此,我有一个基于通用类的视图:
class AuthorCreate(PermissionRequiredMixin, CreateView):
permission_required = 'is_superuser'
model = Author
fields = '__all__'
success_url = reverse_lazy('author-detail')
class AuthorUpdate(PermissionRequiredMixin, UpdateView):
permission_required = 'is_superuser'
model = Author
fields = ['first_name', 'last_name', 'date_of_birth', 'date_of_death']
success_url = reverse_lazy('author-detail')
class AuthorDelete(PermissionRequiredMixin, DeleteView):
permission_required = 'is_superuser'
model = Author
success_url = reverse_lazy('authors')
这些是网址模式:
urlpatterns += [
path('author/create/', views.AuthorCreate.as_view(), name='author_create'), # redirects to author_form.html
path('author/<int:pk>/update/', views.AuthorUpdate.as_view(), name='author_update'), # redirects to author_form.html
path('author/<int:pk>/delete/', views.AuthorDelete.as_view(), name='author_delete'), # redirects to author_confirm_delete.html
]
这是用于创建/更新作者详细信息的 author_form.html:
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
{% csrf_token %}
//remaining code...
</form>
现在,点击上面 html 表单中的提交按钮时,它应该重定向到作者/id 页面(在 success_url 中提到),但主要问题是 没有在第一个创建新作者地点。 我不确定如何保存 html 表单数据,是否首先保存,因为页面正在重定向到 success_url。
代码引用自 MDN:https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Forms
【问题讨论】:
-
你需要解释得更清楚一点。您要执行什么操作,创建或更新?您究竟会访问哪个 URL 以查看表单、提交到哪里以及重定向到哪里?
-
管理员必须使用 author_form.html 创建一个新作者,并且在点击提交按钮时,它应该被重定向到作者的特定页面(这不会发生)
-
那没有回答我的任何问题。 author_form.html 是一个模板,而不是 URL。你去了哪个网址,发生了什么?你看到了什么而不是被重定向?另外,该模板的
//remaining code...部分是什么?您是否在任何地方显示验证错误? -
在提交表单时,加载了相同的 author_form.html 并且作者列表没有得到更新
标签: django django-views django-generic-views