1
Django 1.8 응용 프로그램에 간단한 메시지 기능을 추가해야합니다.Django : 인라인 formset을 사용할 때 업로드 된 파일이 손실되었습니다.
AttachmentFormset = inlineformset_factory(Message, Attachment, extra=1, exclude=[], can_delete=False)
이 모든 형태가 어떻게 : 사용자가이 해당 formset를 사용하여 여러 첨부 파일이있는 메시지를 작성하는
class Attachment(models.Model):
message = models.ForeignKey(Message)
file = models.FileField()
그것은 가능해야한다 : 나는 Message
모델과 다음 Attachment
모델을 가지고 내가보기에 양식을 처리하는 방법을
<form action="" method="post">
{% csrf_token %}
{{ msg_form.as_p }}
{{ attachment_formset.management_form }}
{% for form in attachment_formset.forms %}
{{ form.as_p }}
{% endfor %}
<input class="button" type="submit" value="{% trans 'Send'%}"></input>
</form>
이는 다음과 같습니다 : 내 템플릿에 렌더링
if request.method == "POST":
msg_form = MessageForm(request.POST)
attachment_formset = AttachmentFormset(request.POST, request.FILES)
sender = request.user
if msg_form.is_valid() and attachment_formset.is_valid():
msg = msg_form.save(sender=sender)
for aform in attachment_formset:
a = aform.save(commit=False)
a.message = msg
a.save()
문제는 어떻게 든 request.FILES
은 항상 비어 있으며 첨부 양식의 cleaned_data
도 비어 있습니다. 업로드 된 파일은 어떻게됩니까? FileField
으로 인라인 formset을 처리하는 올바른 방법은 무엇입니까?