首页 > 解决方案 > 管理站点列表与元组 Django

问题描述

在自定义管理站点时,我们可以使用listtuple喜欢

@admin.register(Model_name)
class Model_nameAdmin(admin.ModelAdmin):
  list_display = ['a', 'b', 'c']  # using list
  # lets say a, b, c are fields of model(Model_name)
                    or 
  list_display = ('a', 'b', 'c')  # using tuple 

我很好奇在检索管理站点或类似的东西时使用元组列表或反之亦然的性能有什么区别。我知道元组在性能方面比列表更好,但我们没有在这里循环。我看过whats-the-difference-between-lists-and-tupleswhy-does-django-use-tuples-for-settings-and-not-listswhy-djangos-modeladmin-uses-lists-over -tuples-and-vice-versa,但没有得到我的答案。一直使用元组会更好吗?我专门询问管理站点。

标签: djangodjango-admin

解决方案


对于所有实际意图和目的,这将完全没有任何区别。

性能上可能存在一些边际差异,但在这种情况下,速度上的任何差异都会非常小,以至于永远不会产生任何影响。还有其他一些事情会对性能产生更大的影响。如果有一个应用程序的性能在我们正在谈论的那种规模上很重要,那么无论如何你都不会使用 django-admin 来处理它的性能关键部分。(它并非设计为面向用户的生产就绪站点)。

然而...

使用元组而不是列表是有充分理由的。习俗!!这是官方 django 文档 / 和其他所有人所做的。它可能看起来不是很重要,但如果所有代码看起来都一样,它会使其更具可读性。

我可以看到您可能会争辩说使用列表而不是元组不会影响可读性。但是,如果我正在阅读一些 django-admin 代码并看到正在使用的列表,我可能会停下来思考一下为什么使用列表而不是元组。它对我来说很突出,我想知道为什么会这样做。最终我意识到没有充分的理由,而那段时间会被浪费掉。

与您可能使用的原因类似,样式指南(例如 PEP8)或格式化程序(例如black)以确保每个人的代码看起来都相同。它只是使代码更好一点。


推荐阅读