usar tutorial multiple files example ejemplo como python django modelform

python - tutorial - Django ModelForm Imagefield Upload



upload image django model (2)

No debería tener que configurar newproject.photo para newproject.photo request.FILES[''photo''] (en realidad esto aquí probablemente rompe su código). Simplemente guarde el addprojectform con addprojectform.save() lugar de newproject = addprojectform.save(commit=False) . Vea más información aquí: https://docs.djangoproject.com/en/1.5/topics/http/file-uploads/#handling-uploaded-files-with-a-model

Soy bastante nuevo en Django y encontré un problema al manejar la carga de imágenes usando ModelForm. Mi modelo es el siguiente:

class Project(models.Model): name = models.CharField(max_length=100) description = models.CharField(max_length=2000) startDate = models.DateField(auto_now_add=True) photo = models.ImageField(upload_to="projectimg/", null=True, blank=True)

Y el modelo es el siguiente:

class AddProjectForm(ModelForm): class Meta: model = Project widgets = { ''description'': Textarea(attrs={''cols'': 80, ''rows'': 50}), } fields = [''name'', ''description'', ''photo'']

Y la función de vista es:

def addProject(request, template_name): if request.method == ''POST'': addprojectform = AddProjectForm(request.POST,request.FILES) print addprojectform if addprojectform.is_valid(): newproject = addprojectform.save(commit=False) print newproject print request.FILES newproject.photo = request.FILES[''photo''] newproject.save() print newproject.photo else: addprojectform = AddProjectForm() newProposalNum = projectProposal.objects.filter(solved=False).count() return render(request, template_name, {''addprojectform'':addprojectform, ''newProposalNum'':newProposalNum})

la plantilla es:

<form class="bs-example form-horizontal" method="post" action="">{% csrf_token %} <h2>Project Name</h2><br> {{ addprojectform.name }}<br> <h2>Project Description</h2> {{ addprojectform.description }}<br> <h2>Image Upload</h2><br> {{ addprojectform.photo }}<br> <input type="submit" class="btn btn-success" value="Add Project"> </form>

¿Alguien puede ayudarme o podría dar un ejemplo de carga de imágenes? ¡Gracias!


Ok gracias a todos Me encontré cometiendo un error estúpido. Debería agregar enctype="multipart/form-data" en <form> no, no cargará el archivo.