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

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -