Só exibir uma imagem no template?

979 views
Skip to first unread message

LMax

unread,
May 14, 2008, 11:08:28 AM5/14/08
to Django Brasil
Seguinte pessoal,
Ando perguntando tudo aqui!
uahauhauhau
Até demais!
Mas às vezes as perguntas que eu faço que são respondidas servem pra
mais gente né?
Então primeiramente desculpa qualquer coisa aí, minha intenção não é
fazer flood!

:D

Seguinte!

Queria saber simplesmente como exibir as imagens no meu template, eu
realmente não estou conseguindo.

models.py

class Imagem(models.Model):
class Admin:
pass
Image = models.ImageField(upload_to='diretorio')


Até aí beleza,

No view:
def index(request):
image = Image.objects.all()
return render_to_response('index.html', {'image': image,})

Mas...
E no template??

{{ Imagem.Image }} ?

Como exibo a imagem que o usuário enviou do painel de controle?

tentei
<img src='{{ Imagem.Image }}' />
Sem sucesso!

Obrigado pela atenção mais uma vez,

bY,
Max

Andrews Medina

unread,
May 14, 2008, 11:21:44 AM5/14/08
to django...@googlegroups.com
Olá Lmax, (qual seu nome?)

devido a alguns e-mails seus eu percebi que tu não entendeu ainda como
o Django trata arquivos estáticos.

Arquivos estáticos são as imagens, css, javascripts e html que não sào
gerados ou modificados via banco de dados.

No settings.py de cada projeto há duas variáveis relacionadas com os
arquivos estáticos o MEDIA_ROOT e MEDIA_URL. O MEDIA_ROOT é o caminho
aonde ficará os arquivos estáticos e o MEDIA_URL é a url por onde eles
seriam acessados.

Mesmo com o MEDIA_ROOT e MEDIA_URL configurados o Django ainda não
exibe esses arquivos. Para isso há dois caminhos:

- Servir eles no próprio Django
- Utilizar um servidor como Apache, Lighttpd para servir esses
arquivos estáticos

A primeira opção deve ser usada apenas para teste e no desenvolvimento
da aplicação. Há uma página da documentaçao só sobre ela:
http://www.djangoproject.com/documentation/static_files/

Mas resumindo a documentaçào, para servir arquivos estáticos no Django
tu pode usar a generic view static.serve e definir o caminho onde seus
arquivos estão. Ou seja adicionar um código semelhante ao abaixo no
seu urls.py:

[code]
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/path/to/media'}),
[/code]

Depois de feito isso para exibir sua imagem numa template fica fácil.
Se o nome da url que tu usar for mesmo site_media como no exemplo
acima ficaria assim:

[code]
<img src='/site_media/{{ Imagem.Image }}' />
[/code]

Espero ter esclarecido um pouco.

[]'s

--
Andrews Medina
www.andrewsmedina.com

Guilherme Mesquita Gondim

unread,
May 14, 2008, 11:48:28 AM5/14/08
to django...@googlegroups.com
LMax <lma...@gmail.com> writes:

> <img src='{{ Imagem.Image }}' />

Use {{ objeto.get_FIELD_url }}, no caso, acredito que seria
{{ Imagem.get_Image_url }}.

Referências:

http://www.djangoproject.com/documentation/model-api/#filefield
http://www.djangoproject.com/documentation/model-api/#imagefield

> Ando perguntando tudo aqui! uahauhauhau
> Até demais! Mas às vezes as perguntas que eu faço que são respondidas
> servem pra mais gente né?
> Então primeiramente desculpa qualquer coisa aí, minha intenção não é
> fazer flood!

Bom, parafraseando um aí: "burrice é não perguntar". Portanto, não
hesite em perguntar! Porém, quanto ao "flood" :-P, sugiro que leia a
documentação do Django ou pesquise nela e no Google antes de
perguntar. Muitas de sua dúvidas já estão publicadas na internet. ;-)

--
Guilherme Mesquita Gondim (semente)

LMax

unread,
May 14, 2008, 2:31:26 PM5/14/08
to Django Brasil
Excelente Guilherme,
Estou na tentativa ainda ...

Exemplo:
<div>
{% for i in banner %}
{{ i.Imagem }}
{% endfor %}
</div>

Assim vem a URL,
Aí fui mechendo até observar o seguinte,
No meu admin, onde está Imagem = ImageField()
Quando o cara manda uma imagem a imagem está sendo enviada
corretamente,
Mas a URL não está saindo corretamente!

Provavelmente o MEDIA_URL não está configurado corretamente né?
Mas juntando com que o Andrews disse sobre não ser seguro,
Penso que eu posso manter ao invés de um campo para o Upload da
Imagem,
um campo URL que mesmo não atendendo a necessidade pode ser usado para
testes
até eu enviar o site pro ar,
Enviando o site pro ae eu provavalmente sofro tudo que tenho para
sofrer pra configurar
o servidor remoto e consequentemente o Upload das imagens vão
funcionar,

Estou no caminho certo agora?
eheheh

Valeuuuuuuuuuu Guilherme!
----

Então Andrews,
Eu consegui configurar o servidor de imagens estaticas, sirvo no
servidor do Django mesmo enquanto estou desenvolvendo,
Quando eu fizer o upload, enfim, falar assim pro patrão... Olha! O
site tá pronto!!! Posso enviar pro ftp?

Aí eu vou ter um trabalho maior do que se eu usasse o Apache?

Porque estou desenvolvendo tudo pelo servidor do Django mesmo, porta :
8000 e tudo mais...
E tá indo super bem tirando esses pepinos que aparecem toda hora
consegui montar um view bem legal, nada complexo.
Pergunto muito aqui justamente por não entender da Documentação
(inglês) e dos diversos sites de Django em inglês.

Mas graças a comunidade estou resolvendo todos os POGS
eheheheh

Valeeeeeeu
Abs


On 14 maio, 12:48, Guilherme Mesquita Gondim <seme...@taurinus.org>
wrote:
Reply all
Reply to author
Forward
0 new messages