如何在更新视图中的 django 中制作可清除的文件输入

问题描述

在我的 django 应用程序中,我有一个带有文件字段“identification_image_front”的人物模型。我还使用 Fileinput 小部件为该字段定义了一个 ModelForm。对于模板,我使用 jasny-bootstrap 插件来表示带有“选择文件”、“删除”和“更改”选项的文件输入 在 CreateView 中创建新工作时,可以使用以下代码保存文件。但是在使用 UpdateView 更新现有工作人员时,文件输入始终为空。无法查看 Worker 是否附加了文件,也无法从现有的 Worker 中删除文件。有什么方法可以在 fileinput 中加载文件并启用“删除”选项,以便我可以删除或更改现有工作人员的文件? 也许还有另一种方法可以使用其他插件或 HTML 代码来做到这一点。我愿意接受建议

The inputfield is empty in the updateview

In the createview is possible to remove the file

这是我的代码

class WorkerModel(BaseModel):

    name = models.CharField(verbose_name=_("Nombre "),max_length=50,blank=False,null=False)
    surname1 = models.CharField(verbose_name=_("Primer apellido"),null=False)
    surname2 = models.CharField(verbose_name=_("Segundo apellido"),null=False)

    identification_image_front = models.FileField(verbose_name=_("Foto carnet frontal"),upload_to="app_person_identification_image_front",null=True,blank=True)

 class WorkerForm(forms.ModelForm):
    
        class Meta:
            model = WorkerModel
            exclude = ("id",)
            widgets = {
                
                'name':forms.TextInput(attrs={'class': 'form-control'}),'surname1' : forms.TextInput(attrs={'class': 'form-control'}),'surname2' : forms.TextInput(attrs={'class': 'form-control'}),'identification':forms.TextInput(attrs={'class': 'form-control'}),'identification_image_front': forms.FileInput(attrs={'accept': 'application/pdf,image/png,image/jpeg'}),}

在模板中

<div>
      {{ form.identification_image_front.label }}
  </div>
  <div class="fileinput fileinput-new input-group" data-provides="fileinput">
    <div class="form-control" data-trigger="fileinput">
      <span class="fileinput-filename"> </span>
    </div>
    <span class="input-group-append">
      <span class="input-group-text fileinput-exists" data-dismiss="fileinput">
        Remove
      </span>
      <span class="input-group-text btn-file">
        <span class="fileinput-new">Select file</span>
        <span class="fileinput-exists">Change</span>
        {{ form.identification_image_front }}
        
      </span>
    </span>
  </div>

视图定义

class WorkerCreateView(LoginrequiredMixin,CreateView):
    model = WorkerModel
    #group_required = [u'Auxiliar Legal','Jefe de la Oficina Local','Jefe de la RBRP']
    context_object_name = 'obj'
    template_name = 'app/worker/worker_form.html'
    form_class = WorkerForm

    def get_success_url(self):
        return reverse_lazy("app:worker_detail",kwargs={"pk":self.object.id})

class WorkerUpdateView(LoginrequiredMixin,UpdateView):
    model = WorkerModel
    #group_required = [u'Auxiliar Legal','Jefe de la RBRP']
    context_object_name = 'obj'
    template_name = 'app/worker/worker_form.html'
    form_class = WorkerForm
   
    def get_success_url(self):
        return reverse_lazy("app:worker_detail",kwargs={"pk":self.object.id})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...