Почему ModelAdmin в Django использует списки над кортежами и наоборот - PullRequest
2 голосов
/ 09 сентября 2010

Из вводного руководства по 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)

Почему inline и list_filter оба используют списки, в то время как list_display использует кортеж?Должны ли inline и list_filters быть изменяемыми по какой-то причине?

Я просто пытаюсь понять здесь дизайнерское решение.

1 Ответ

6 голосов
/ 09 сентября 2010

Неважно, какой вы используете, потому что Django (и вы) никогда не изменит их во время выполнения. Все, что важно, это то, что значение должно быть повторяемым из строк. Я часто использую foo = ["something"], когда есть только один элемент, потому что меня так часто прибивают, когда я случайно говорю foo = ("somthing") вместо foo = ("something",).

Я бы поставил эту проблему с одним элементом-кортежем в моем списке раздражителей Python сразу после "значительного пробела". Тем не менее, я все еще люблю язык.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...