Ошибка загрузки нескольких файлов Django - PullRequest
1 голос
/ 13 ноября 2011

У меня есть одна HTML-страница с двумя формами Django, все в одном теге <form>..</form>. Все отлично работает, кроме случаев, когда я пытаюсь загрузить несколько файлов.

Каждая форма имеет свое изображение, и по какой-то причине я могу сохранить изображение только из первой формы. Другие данные из второй формы все еще сохраняются, но без изображения. Я не вижу никаких ошибок или исключений, поэтому я не знаю, что происходит: s.

Вот мои views.py

def display_form(request):
if request.method == 'POST':
    form_team = TeamForm(request.POST, request.FILES, prefix="team")
    form_player = PlayerForm(request.POST, request.FILES, prefix="play")
    #form_ketua = KetuaForm(request.POST, request.FILES, prefix="ketua")

    if all([form.is_valid() for form in [form_team, form_player]]):
        # save Team data first, overwrite if exists
        try:
            team = Team.objects.get(kota=form_Team.cleaned_data['name'])
            team.profil = form_Team.cleaned_data['profil']
            team.save()
        except Team.DoesNotExist:
            team = Team(**form_Team.cleaned_data)
            team.save()

        play = form_Player.save(commit=False)
        play.name = team
        play.save()

else:
    form_team = TeamForm(prefix="team")
    form_player = PlayerForm(prefix="play")
    #form_ketua = KetuaForm(prefix="ketua")
    print "a"

# list with tuple (form, legend) to pass as context
forms = [(form_Team, 'Team Data'),
         (form_Player, 'Player Profile'),
        ]

return render_to_response(
    'form/team.html', 
    {
        'formlist': forms,
    },
)

Что я делаю не так?

РЕДАКТИРОВАТЬ: Вот мой шаблон

{% extends "base.html" %}

{% block title %}Form - {{ title }}{% endblock %}

{% block content %}
<form action="." method="POST" enctype="multipart/form-data">{% csrf_token %}
{% for formitem in formlist %}
  {% if formitem.1 %}
  <fieldset>
      <legend>{{ formitem.1 }}</legend>
  {% endif %}
    {{ formitem.0.non_field_errors }}
    {% for field in formitem.0.visible_fields %}
      <div class="formfield">
      {{ field.errors }}
      {{ field.label_tag }} {{ field }}
  </div>
    {% endfor %}
  {% if formitem.1 %}
  </fieldset>
  {% endif %}
{% endfor %}
<div id="formbuttons">
  <input type="submit" value="Submit" class="button">
  <input type="reset" value="Reset" class="button">
</div>
</form>
{% endblock %}

1 Ответ

0 голосов
/ 13 ноября 2011

похоже, что вам не хватает play.save() (вы сохраняете форму с помощью commit=False)

...