2010-09-08 53 views
1

從Django的介紹教程,在\mysite\polls\admin.py爲什麼Django的的ModelAdmin使用列表在元組,反之亦然

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需要由於某種原因可變嗎?

我只是想了解這裏的設計決定。

+0

真的,我正在尋找一種合理的方式來記住屬性是列表還是元組。 – 2010-09-08 20:06:19

回答

4

你使用哪一個並不重要,因爲Django(和你)在運行時永遠不會改變它們。重要的是該值是一串字符串。當我只有一個元素時,我經常使用foo = ["something"],因爲當我不小心說出foo = ("somthing")而不是foo = ("something",)時,我經常被釘上釘。

我會把這個一元元組符號問題放在我的Python刺激物列表中,緊接着「顯着空白」之後。也就是說,我仍然喜歡這種語言。

+0

已驗證。無論是列表還是元組都可以在這裏執行 - 它可以同時工作。如果您嘗試使用其他數據類型,則會出現與此類似的錯誤:「PollAdmin.list_filter」必須是列表或元組。 – 2010-09-09 16:04:24

+0

我正在尋找名單。在我看來,元組應該用於具有自然結構的數據(這就是爲什麼它們是不可變的......有點)。似乎我錯了使用元組只是爲了得到一個不可變的列表:0 請參閱元組列表與列表http://stackoverflow.com/questions/626759/whats-the-difference-between-list-and-tuples – pghalliday 2016-08-31 18:08:20

相關問題