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' -

python - How do I create a list index that loops through integers in another list -

c# - “System.Security.Cryptography.CryptographicException: Keyset does not exist” when reading private key from remote machine -