Django: добавление оператора if, чтобы проверить, был ли файл загружен в контактную форму - PullRequest
0 голосов
/ 08 мая 2019

У меня есть контактная форма на сайте, которая включает в себя несколько дополнительных документов.Как только форма заполнена, сотруднику отправляется электронное письмо, которое включает в себя данные формы вместе с этими документами в виде вложений электронной почты.Я хочу добавить оператор if перед командой msg.attach_file в моем файле views.py, который предотвращает вложение файла, если документ никогда не загружался.Что-то вроде ...

if upload_file_type2 blank = false
    msg.attach_file('uploads/filetype2/')

Я знаю, что вышеприведенная строка неверна, но я не уверен, как написать оператор if, который говорит, что запись формы была пустой.Ниже приведены соответствующие файлы.

Models.py

upload_file_type1 = models.FileField(upload_to=file_path1, blank=True)

upload_file_type2 = models.FileField(upload_to=file_path2, blank=True)

Views.py

def quote_req(request):
    submitted = False
    if request.method == 'POST':
        form = QuoteForm(request.POST, request.FILES)
        upload_file_type1 = request.FILES['upload_file_type1']
        upload_file_type2 = request.FILES['upload_file_type2']
        if form.is_valid():
            form.save()
            # assert false
            msg = EmailMessage('Contact Form', description, settings.EMAIL_HOST_USER, ['sample@mail.com'])
            msg.attach_file('file_path1')
            #THIS IS WHERE PROPOSED IF STATEMENT WOULD GO
            msg.attach_file('file_path2')
            msg.send()
            return HttpResponseRedirect('/quote/?submitted=True')
    else:
        form = QuoteForm()
        if 'submitted' in request.GET:
            submitted = True

1 Ответ

0 голосов
/ 08 мая 2019

Обычно вы делаете что-то вроде этого:

upload_file_type2 = request.FILES.get('upload_file_type2', None)
if upload_file_type2 is not None:
    # File is present, can attach
    # . . .

Это, наверное, лучший метод. В качестве альтернативы, можно также сделать что-то вроде следующего

if 'upload_file_type2' in request.FILES:
    # Here it is already not empty, and you can attach
    upload_file_type2 = request.FILES['upload_file_type2']
    # . . . 
...