#django
#django
Вопрос:
В моем проекте Django есть форма, в которой много полей, некоторые из которых являются FileFields. form.is_valid()
Метод возвращает False , утверждая, что поля FileField пусты, но я загружаю их, и я знаю, что они получены, потому что, когда я печатаю результаты обоих request.POST.items()
и request.FILES.items()
, я получаю это:
POST > ('csrfmiddlewaretoken', 'GXS7HcM4MS87EwqsNn0bLyo3CFGLxAEJqGiJHyG0uHRoALzySdVTteXcYvhkojTG')
POST > ('business_type', '0')
POST > ('rfc', 'FOVL950527261')
POST > ('full_name', 'Asdff Asdf Asdf')
POST > ('email', 'asdf@asdf.com')
POST > ('address', 'Sierra Madre Occidental #121 Colonia Lomas de San Francisco')
POST > ('private_phone', '4921055833')
POST > ('cellphone', '4921055833')
POST > ('business_name', 'MUNICIPIO DE JEREZ ZACATECAS')
POST > ('jobs_generated', '123')
POST > ('expected_investment', '123')
POST > ('gender', '0')
POST > ('age', '123')
POST > ('rfc_moral_person', 'FOV950527261')
POST > ('economic_sector', '0')
POST > ('address_street', 'Sierra Madre Occidental #121 Colonia Lom')
POST > ('address_number', '123')
POST > ('address_neighborhood', 'asfd')
POST > ('address_locality', 'Zacatecas')
POST > ('address_between_streets', '')
POST > ('amount_paid', '123')
POST > ('rfc_copy', '')
POST > ('constitutive_act_copy', '')
FILES > ('official_id_copy', <InMemoryUploadedFile: sare_logo_qJg0oPx.png (image/png)>)
FILES > ('business_address_voucher', <InMemoryUploadedFile: sare_logo_qJg0oPx.png (image/png)>)
FILES > ('legal_posession_voucher_copy', <InMemoryUploadedFile: sare_logo_qJg0oPx.png (image/png)>)
Моя форма — это только это:
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form|crispy }}
<div class="border-top">
<div class="card-body">
{% block buttons %}
<button type="submit" class="btn btn-primary"><i class="fa fa-share"></i> {% trans "Enviar" %}
</button>
{% endblock %}
</div>
</div>
</form>
{{ form.media }}
Я думаю, что я правильно получаю файлы, потому что я вижу их при печати запроса.FILES.items(), но методы form.is_valid говорят, что они отсутствуют.
Вы знаете, почему это может быть, какая другая вещь может дать сбой?
Комментарии:
1. Как ваше представление создает форму?
Ответ №1:
Не зная, как построена ваша функция просмотра, обязательно укажите файлы в качестве параметра для формы в вашей функции просмотра:
def yourViewFunction(request):
form = YourForm(request.POST, request.FILES)
if form.is_valid():
# rest of your code
Надеюсь, это решит вашу проблему.
Комментарии:
1. Точно, я только что это увидел, и это было так, у меня только что была форма = FormatUpdateForm (request.POST)