2016-04-27 28 views
0

我有一個Django表單,需要在首次提交時上傳xls文件。當我編輯記錄時,我不希望必須重新上傳其他XLS。實際上,xls可能不可用。我無法圍繞我如何重寫保存方法或表單來有效地說'嘿,這次你保持和你一樣的xls,並忽略那個領域中的任何東西'。我想要有效地保留文件鏈接,將表單中的最初xls下載到表單中,以便可以編輯最初的xls,但將其設置爲空字段而不是必需的。Django:文件在編輯記錄時不存在。我不想更新該字段

謝謝!

回答

0

您可以創建兩種形式 - 一種用於添加,另一種用於編輯。

class MyAddForm(ModelForm): 
    class Meta: 
     model = MyModel 
     fields = ['name', 'xls_file'] 

class MyEditForm(ModelForm): 
    class Meta: 
     model = MyModel 
     fields = ['name', 'xls_file'] 

    def __init__(self, *args, **kwargs): 
     super(MyEditForm, self).__init__(*args, **kwargs) 
     self.fields['xls_file'].required = False 
+0

我的困惑是你如何設置這些表單來使用。我看到在admin.py文件中,您將設置form = something,但它如何知道添加表單和編輯表單之間的區別? Django是否從命名約定中選擇了它?如果是這樣,那麼你將form =設置爲?感謝您的幫助,我正在學習示例,文檔和此差異尚不清楚。他們都只是說如何覆蓋表單,而不是添加和編輯之間的區別。 –

相關問題