在Django中命名基于类的视图有错误的方法吗?

时间:2019-05-15 14:59:43

标签: django

这是关于代码风格和最佳实践的问题。

在我们的Django项目中,我们具有基于类的视图,其命名如下:

urls.py

path('project/<int:pk>/clone/', CloneView.as_view(), name='clone'),
path('project/<int:pk>/delete/', ProjectDelete.as_view(), name='project-delete'),
path('project/<int:pk>/optimize/', ProjectOptimize.as_view(), name='project-optimize'),
path('project/<int:pk>/report/', ReportView.as_view(), name='report'),

如您所见,其中一些我们说MyClassView.as_view(),而其他一些我们只说MyClass.as_view()。但是我还注意到,在文档中,他们始终使用第一种形式:https://docs.djangoproject.com/en/2.2/topics/class-based-views/ 也引起我注意的是,我们从不使用名称作为视图,例如:name=clone-name

我的问题是:在类名中明确说出该类是视图是否有明显的优势?不使用它是“错误的”吗?

我想保持我们的代码基础一致。 谢谢大家!

1 个答案:

答案 0 :(得分:3)

我认为是否包含View后缀并不重要。在Django项目中包含名称是很常见的,但最重要的是在您自己的项目中保持一致。

使用后缀ViewForm的一个优点是避免名称冲突。例如BookViewBookForm和模型Book不能互相冲突。

您可以通过importing modules instead of objects避免冲突,在这种情况下,不必使用FormView后缀。