From the Django intro tutorial, in \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)
Why do inlines and list_filter both use lists, while list_display uses a tuple? Do inlines and list_filters need to be mutable for some reason?
I’m just trying to understand the design decision here.
It doesn’t matter which you use because Django (and you) will never change them during runtime. All that’s important is that the value be an iterable of strings. I often use
foo = ["something"]when there is only one element because I’ve gotten nailed so often when I accidentally sayfoo = ("somthing")instead offoo = ("something",).I would put this one-element-tuple-notation issue on my list of Python irritants, right after “significant whitespace”. That said, I still love the language.