Django:文件在编辑记录时不存在。我不想更新该字段

Django:文件在编辑记录时不存在。我不想更新该字段

问题描述:

我有一个Django表单,需要在首次提交时上传xls文件。当我编辑记录时,我不希望必须重新上传其他XLS。实际上,xls可能不可用。我无法围绕我如何重写保存方法或表单来有效地说'嘿,这次你保持和你一样的xls,并忽略那个领域中的任何东西'。我想要有效地保留文件链接,将表单中的最初xls下载到表单中,以便可以编辑最初的xls,但将其设置为空字段而不是必需的。Django:文件在编辑记录时不存在。我不想更新该字段

谢谢!

您可以创建两种形式 - 一种用于添加,另一种用于编辑。

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 =设置为?感谢您的帮助,我正在学习示例,文档和此差异尚不清楚。他们都只是说如何覆盖表单,而不是添加和编辑之间的区别。 –