Как получить имя файла в UpdateView (Create View) в Django - PullRequest
0 голосов
/ 31 января 2020

У меня есть простая модель.

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, добавлять файлы и т. Д. c ...

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 голосов
/ 03 февраля 2020

С помощью этой функции 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
0 голосов
/ 31 января 2020
file_name=form.fields['in_note_on'].name  
print(file_name)

Будет напечатано загруженное имя файла. Для получения дополнительной информации перейдите по ссылке ниже: Как я могу получить имя файла из request.FILES?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...