subir archivo

319 views
Skip to first unread message

lord.carcas

unread,
Jul 15, 2009, 1:31:49 AM7/15/09
to djan...@googlegroups.com
Hola a todos estoy haciendo un app para subir archivos pdf, desde el admin se puede subir pero a la hora de mostrarlos en el template el link para descargarlo pues no he podido buscando ejemplo encontre uno pero es para subir imagenes entonces la cuestion esque funciona bien pero yo necesito subir archivos pdf y solamente eso PDF entonces modifique un poco el views para que me permitiera subir solo pdf y aca esta el codigo "no me funciona "
1. declaro un form para subirlo desde el template NO desde el admin
class AdjuntoForm(forms.Form):
    attachment = forms.FileField(help_text="añadir un archivo *.pdf")
   
2. aca la funcion que supuestamente debe de solo permitir subir archivos pdf pero que va me mando error
def clean(request):
        "Validate the entire form"
        cleaned = self.cleaned_data
        try:
            file = cleaned['attachment']
        except Exception, e:
            raise forms.ValidationError("Archivo no valido: %s" % e)
        if file.content_type != "application/pdf":
           
            raise forms.ValidationError("por favor suba un archivo PDF")
        return cleaned

3. el ERROR

TypeError at /biblio/attach/

'mime_type' is an invalid keyword argument for this function

4. aca la funcion attach

def attach(request):
if request.method == 'POST':
form = AdjuntoForm(request.POST, request.FILES)
if form.is_valid():
f = request.FILES['attachment']
record = Biblioteca(name = f.name,
attachment = os.path.join(settings.ATTACHMENT_FOLDER, form.cleaned_data['attachment'].name),
mime_type = f.content_type)
handles_uploaded_file(f)
record.save()
return HttpResponseRedirect('biblio/list/')
else:
form = AdjuntoForm()
return render_to_response('attach.html',{'form':form},
context_instance = RequestContext(request))

5. la pregunta que creen que este mal porque me estara lanzando este error alguien tiene alguna idea como resolverlo o un ejemplo o documentacion para poder
que solo permita archivos PDF

de antemano gracias

Facundo Casco

unread,
Jul 15, 2009, 5:33:34 PM7/15/09
to djan...@googlegroups.com
2009/7/15 lord.carcas <lord....@gmail.com>:

> 3. el ERROR
>
> TypeError at /biblio/attach/
>
> 'mime_type' is an invalid keyword argument for this function
>
> record = Biblioteca(name = f.name,
> attachment = os.path.join(settings.ATTACHMENT_FOLDER,
> form.cleaned_data['attachment'].name),
>
> mime_type = f.content_type)

Asumo que Biblioteca es un modelo, estas seguro que tiene un campo "mime_type"?
Suena bastante obvio pero... a falta de otras respuestas

lord.carcas

unread,
Jul 16, 2009, 12:19:34 PM7/16/09
to djan...@googlegroups.com
hola si lo tiene y ya puse resolver ese inconveniente ahora solo queda saber como hacer que desde la interfaz del administrador restringir que solo suba archivos .pdf ya que al ser un FileField acepta de todo

alguien a validado un campo FileField solo permita subir archivos especificos por ejemplo (*. pdf)  pero desde la interfaz del admin de Django la que se crea automaticamente?

NO desde un formulario, lo necesito dentro del admin

att.

Jair Gaxiola

unread,
Jul 16, 2009, 1:43:24 PM7/16/09
to djan...@googlegroups.com
2009/7/16 lord.carcas <lord....@gmail.com>
hola si lo tiene y ya puse resolver ese inconveniente ahora solo queda saber como hacer que desde la interfaz del administrador restringir que solo suba archivos .pdf ya que al ser un FileField acepta de todo

alguien a validado un campo FileField solo permita subir archivos especificos por ejemplo (*. pdf)  pero desde la interfaz del admin de Django la que se crea automaticamente?

NO desde un formulario, lo necesito dentro del admin

Lo que se me ocurre es que desde el lado del cliente pongas la restrinccion, ya que si es pdf no es necesario subirlo para despues validar y verificar que es pdf y borrarlo, puedes usar http://www.fyneworks.com/jquery/multiple-file-upload/

Saludos.



--
SIN ETIQUETAS.[ PUNTO ]
http://jyr.tumblr.com
http://blog.opentumblr.com

lord.carcas

unread,
Jul 16, 2009, 10:29:42 PM7/16/09
to djan...@googlegroups.com
gracias chicos por su valiosa ayuda, ya lo resolvi por el momento me funciona bien solo me permite subir archivos pdf la solucion que encontre fue en este sitio [1] solo tuve que hacer algunas pequeñas adaptacion a mi app aca les dejo la pagina para que la chequen y gracias nuevamente.

Arslae

unread,
Jul 22, 2009, 10:53:49 PM7/22/09
to djan...@googlegroups.com
Hola lord.carcas
 
Bueno estuve leyendo tus comentarios y vi que habias encontrado un ejemplo de como subir imágenes, en mi app necesito subir imagenes y no he podido.  Me podrías pasar el link del ejemplo que mencionas por favor.
 
Saludos

lord.carcas

unread,
Jul 23, 2009, 1:05:26 AM7/23/09
to djan...@googlegroups.com
perdon Arslae el link que puse me sirvio esque mira bien un campo tipo FileField te permite subir todo lo que quieras incluso mp3, odt, xls, etc pero si solo queres subir imagenes entonces creo que deberias usar ImageField ese si solo te permite subir imagenes png , jpg de lo contrario si queres subir cualquier cosa el mismo te detiene informandote que solo permite archivos de imagenes pero bueno aqui de nuevo el link que me sirvio vuelvo y repito para un campo FileField permita subir solo pdf, ahora aunque en el ejemplo creo que supone solo subir odt, pdf, y otros yo borre los otros y solo deje para pdf
buena link:
http://www.neverfriday.com/sweetfriday/2008/09/-a-long-time-ago.html?dsq=12768388#comment-12768388

bye cualquier pregunta que no te funcione me avisas y te puedo ayudar

Eliezer J Romero C

unread,
Dec 8, 2013, 6:47:02 PM12/8/13
to djan...@googlegroups.com
Buenas noches, estuve tratando de ver el links que dejastes no esta visible ahorita mismo. Podrías publicar como resolvistes en este caso? Ya que en este momento tengo el mismo inconveniente.. Agradeciendo de antemano... 

Hiko hitokiri

unread,
Dec 8, 2013, 7:47:39 PM12/8/13
to djan...@googlegroups.com
veo varias cosas en tu codigo uno es que a tu filefield le falta el upload_to  y pues es posible tengas  cosas que falten en tu form cuando lo renderisas  ya que ahora las nuevas versiones de django piden otras cosas si es que vas a subir archivos seria de  que mandaras mas codigo para ver si podes poner tu proyecto en un zip o github le hecho un vistazo y te ayudo 
Reply all
Reply to author
Forward
0 new messages