2012-03-02 103 views
1

我想在我的管理窗體中將自定義名稱設置爲FileField對象,以便它的html名稱屬性不會等於我的實例字段名稱。Django - 如何設置窗體.FileField名稱

class MyAdminForm(forms.ModelForm): 
    file_field = forms.FileField() 

    def __init__(self, *args, **kwargs):          
     if kwargs.has_key('instance'): 
      instance = kwargs['instance'] 
      self.initial['image_file'] = instance.file_field 

有了這個代碼,我得到<輸入類型=「文件」 NAME =「是,file_field」/>,我想要做的是設置它的name屬性來別的什麼。

編輯:

我接受了下面的答案,但我有另一個問題。是否有可能構造可變數量的FileField對象?我的意思是 - 如果我想現在有4個,但在某些情況下只有一個?我需要將所有這些聲明爲類字段,例如file_field1,file_field2等,或者可以將它們添加到字典中,如下所示:{'file_field1:FileField(),'file_field2':FileField() } - 我實際上嘗試過,並且出現錯誤...

+1

英語不是您的母語。 **避免長句**如「我想在我的管理員表單中爲自定義名稱設置FileField對象,這樣它的html名稱屬性將不會等於我的實例字段名稱。」堅持主語+動詞+補語。你的問題突然變得更有意義! – jpic 2012-03-02 13:20:45

+0

這裏有一些來自上面的提示.. :) http://blog.stackoverflow.com/2010/10/asking-better-questions/和@jpic提到你會得到更好的答案.. – Lipis 2012-03-02 13:39:54

+0

非常感謝語言建議! :) – 2012-03-02 16:39:05

回答

2

HTML中的name屬性與表單定義中的名稱相同,因此如果您不希望它是file_field那麼請不要調用它file_field

class MyAdminForm(forms.ModelForm): 
    new_field = forms.FileField() 
    # Rest of the form goes here 
+0

如果沒有其他方法,那麼好吧我會這樣做,但這是否意味着我無法聲明FileFields的字典? – 2012-03-02 16:32:31

+0

是的,它可以動態創建表單域。見http://stackoverflow.com/questions/5478432/making-a-django-form-class-with-a-dynamic-number-of-fields – 2012-03-02 16:52:12