python - Django Model Instance - Saving other attributes -


i'm trying support user uploads in django application. application should allow user create own repo of files , folders.

the below model instance

class project(models.model):     name = models.charfield(max_length=255)      def __str__(self):         return self.name  class folders(models.model):     name = models.charfield(max_length = 255,default = 'main')     project = models.foreignkey(case)  class files(models.model):     folder = models.foreignkey(folders)     file = models.filefield(upload_to = get_upload_url)   def get_upload_url(instance,filename):     print('instance :',instance)     return '/'.join([instance.folder.project.name,instance.folder.name,filename]) 

i'm getting error when i'm trying upload docs specific folders using django forms

def projectpagealt(request,casenum,folder):     proj = project.objects.get(pk=casenum)     folder = folders.objects.get(name = folder,project=proj)     files = files.objects.filter(folder=folder) or none      if request.method == 'post':         form = fileuploadform(request.post,request.files)          if form.is_valid():             instance = form             instance[folder] = folder             # form.folder = folder             instance.save()             return httpresponse('thanks')     else:         form = fileuploadform()     return render(request,'projectuploadalternative.html',{'form':form,'files':files}) 

i'm getting below error because i'm trying add folder instance model before saving

'fileuploadform' object not support item assignment 

is there anyway around this? need ensure file gets uploaded appropriate folder

found work around. sounds more hack me.

def casepagealt(request,casenum,folder):     case = case.objects.get(pk=casenum)     folder = folders.objects.get(name = folder,case=case)     files = files.objects.filter(folder=folder) or none      if request.method == 'post':         form = fileuploadform(request.post,request.files)          if form.is_valid():             file = request.files['upload']             instance = files(folder=folder,file=file)             instance.save()             return httpresponse('thanks')     else:         form = fileuploadform()     return render(request,'caseuploadalternative.html',{'form':form,'files':files}) 

this works because initial form had modelform. made form normal one

previous

# class fileuploadform(forms.modelform): # #     class meta: #         model = files #         fields = ['file'] 

new

class fileuploadform(forms.form):      upload = forms.filefield() 

Comments

Popular posts from this blog

android - Why am I getting the message 'Youractivity.java is not an activity subclass or alias' -

Making Empty C++ Project: General exception (Exception from HRESULT:0x80131500) Visual Studio Community 2015 -

How to fix java warning for "The value of the local variable is not used " -