代码之家  ›  专栏  ›  技术社区  ›  Mike M. Lin

为什么Django的ModelAdmin在元组上使用列表,反之亦然

  •  2
  • Mike M. Lin  · 技术社区  · 15 年前

    来自Django简介教程,在 \mysite\polls\admin.py

    from django.contrib import admin
    #...
    class PollAdmin(admin.ModelAdmin):
      #...
      inlines = [ChoiceInline]
      list_display = ('question', 'pub_date', 'was_published_today')
      list_filter = ['pub_date']
    
    admin.site.register(Poll, PollAdmin)
    

    为什么内联线和 list_filter 两者都使用列表,而 list_display 使用元组?做内联线和 list_filters 出于某种原因需要可变?

    1 回复  |  直到 15 年前
        1
  •  8
  •   Peter Rowell    15 年前

    使用哪一个并不重要,因为Django(和您)在运行时永远不会更改它们。重要的是,值必须是字符串的iterable。我经常使用 foo = ["something"] 当只有一个元素时,因为我不小心说 foo = ("somthing") 而不是 foo = ("something",) .

    我会把这个单元素元组表示法问题放在我的Python刺激列表中,就在“重要空格”之后。也就是说,我仍然热爱这门语言。