2016-05-10 4 views
1

2つのモデルがあります。主なものは企業に関する情報を含み、ForeignKeyモデルはファイルを企業モデルにリンクします。私は今すぐMultiFileFieldを自分のフォームに統合して、一度に複数のファイルをアップロードすることができます(django-multiuploadを使用)。ModelForm内でdjango-multiuploadを使用する

フォームを送信すると、「このフィールドは必須です」というメッセージが表示されます。私のMultiFileFieldのエラーです。

form = CompanyForm(request.POST, request.FILES, instance=current_company) 
で私は行方不明になったrequest.FILES:仲間のジャンゴ - 初心者は同様の問題に遭遇し
# models.py 
class Company(models.Model): 
    name = models.CharField(max_length=200) 
    note = models.TextField() 

class CompanyData(models.Model): 
    company = models.ForeignKey(Company, on_delete=models.CASCADE) 
    document = models.FileField(upload_to="attachments") 

# forms.py 
class CompanyForm(forms.ModelForm): 

    attachments = MultiFileField(min_num=1, max_num=3, max_file_size=1024*1024*5) 

    class Meta: 
     model = Company 
     fields = '__all__' 

    def save(self, commit=True): 
     instance = super(CompanyForm, self).save(commit) 
     for each in self.cleaned_data['attachments']: 
      CompanyData.objects.create(document=each, company=instance) 
     return instance 

# views.py 
def company_edit(request, pk): 
    current_company = get_object_or_404(Company, pk=pk) 

    if request.method == "POST": 
     form = CompanyForm(request.POST, instance=current_company) 
     if form.is_valid(): 
      current_company = form.save(commit=False) 
      current_company.save() 
      return redirect('company_detail', pk=current_company.pk) 
    else: 
     form = CompanyForm(instance=current_company) 

    contexts = { 
     'form': form, 
    } 

    return render(request, 'company_edit.html', contexts) 

# company_edit.html 
    <form method="POST" class="post-form" enctype="multipart/form-data"> 
    {% csrf_token %} 
    {{ form }} 
    <button type="submit" class="save">Save</button> 
    </form> 

答えて

0

場合

:ここ

は私のコードです
関連する問題