如何在Django的UpdateView(创建视图)中获取文件名

时间:2020-01-31 12:48:04

标签: django

我有一个简单的模型。

models.py

class Inform_note(models.Model):
id = models.AutoField(primary_key=True)
in_note_on = models.FileField(upload_to='notes', blank=True)
note_date = models.DateField(auto_now_add=False, blank=True, null=True)

借助CreateView,我可以创建新记录,使用UpdateView编辑此记录,添加文件等...

view.py

class Inform_noteEditView(generic.UpdateView):
model = Inform_note
fields = '__all__'


def get_form(self, form_class=None):
    form = super().get_form(form_class)
    form.helper = FormHelper()
    form.helper.add_input(Submit('submit', 'Create', css_class='btn-primary'))
    form.fields['in_note_on'].label = "Выписка об ОН"
    return form

但是在“返回表单”之前,我想在字段(in_note_on)中看到文件名。

print(form.fields['in_note_on'])

返回<django.forms.fields.FileField object at 0x00000000062D9710>

任何想法如何在此字段中获取文件名?

2 个答案:

答案 0 :(得分:0)

file_name=form.fields['in_note_on'].name  
print(file_name)

它将打印上传的文件名。有关更多信息,请点击以下链接: How can I get the file name from request.FILES?

答案 1 :(得分:0)

通过此get_object函数,我可以访问模型中的对象。

queryset = Inform_note.objects.all()
def get_object(self):
    ob = super().get_object()
    print(ob.in_note_on)

现在view.py:

class Inform_noteEditView(generic.UpdateView):
model = Inform_note
fields = '__all__'

queryset = Inform_note.objects.all()
def get_object(self):
    ob = super().get_object()
    print(ob.in_note_on)


def get_form(self, form_class=None):
    form = super().get_form(form_class)
    form.helper = FormHelper()
    form.helper.add_input(Submit('submit', 'Create', css_class='btn-primary'))
    form.fields['in_note_on'].label = "MY FILE"
    return form
相关问题