2017-09-23 16 views
0

私は最初のDjangoアプリケーションをビルドしています。異なるアップロードフォームで複数のファイルをアップロードできるアップロードページが必要です。私は別のフォームが必要です。私の推測するように、ファイルはフォームに応じてメディアルートのそれぞれのフォルダに保存し、別の変換を実行する必要があります。私はまた、異なるユーザーがこれらのアップロードへのアクセスのレベルが異なることを望んでいます。異なるモデルのDjangoアップロードフォーム

models.pyを:

は、これまでのところ、私は、データフレームまたは他のプログラムにデータを送信views.pyで関数内の追加コードのかなりのビットを持っていますが、私はそれらの投稿ではないのです(このようなものを持っています

class Upload(models.Model): 
document = models.FileField(storage=OverwriteStorage(),upload_to=get_file_path) 
upload_date=models.DateTimeField(auto_now_add =True) 


class Upload_variables(models.Model): 
    variables = models.FileField(storage=OverwriteStorage(),upload_to=get_file_path_var) 
    upload_date=models.DateTimeField(auto_now_add =True) 

forms.py

from django import forms 
from uploader.models import Upload, Upload_variables 

class UploadForm(forms.ModelForm): 
    class Meta: 
     model = Upload 
     fields = ('document',) 

class UploadFormVar(forms.ModelForm): 
    class Meta: 
     model = Upload_variables 
     fields = ('variables',) 

views.py

def home(request): 
if request.method=="POST": 

    img = UploadForm(request.POST, request.FILES) 
    if img.is_valid(): 
     img.save() 
else: 
    img=UploadForm() 
files=Upload.objects.all() 
return render(request,'home.html',{'form':img}) 




def variables(request): 

if request.method == 'POST': 
    var = UploadFormVar(request.POST, request.FILES) 
    if var.is_valid(): 
     var.save() 

else: 
    var = UploadFormVar() 
files_st = Upload_variables.objects.all() 
return render(request, 'home.html', {'form_b': var}) 

HTML

 <form action="#" method="post" enctype="multipart/form-data"> 
      {% csrf_token %} {{form}} 
      <input type="submit" value="Upload" id="submit_form"/> 
     </form> 

     <form action="#" method="post" enctype="multipart/form-data"> 
      {% csrf_token %} {{form_b}} 
      <input type="submit" value="Upload" id="staging"/> 
     </form> 

はあなたの助けをありがとう....だから私は2つのアップロードボタンを見ることができますが、一つだけ 'ファイルを選択してください'!

答えて

0

現在、フォームは2つの別々のビューに配置されています。次のように同じビューに配置する必要があります。

 def home(request): 
      if request.method=="POST": 
        var = UploadFormVar(request.POST, request.FILES) 
        img = UploadForm(request.POST, request.FILES) 
        if img.is_valid(): 
         img.save() 
        if var.is_valid(): 
         var.save() 
      else: 
        img = UploadForm() 
        var = UploadFormVar() 
      files=Upload.objects.all() 
      return render(request,'home.html',{'form': img, 'form_b': var}) 
関連する問題