Comandos para imagem Python/Django

5 respostas
bootstrappython
T

Olá, tudo bem gostaria de saber quais os passos para configurar em views, ou em models, para que minha página web aceite imagem utilizando Python/Django, e estou usando como front-end Bootstrap, está apresentando erro:


Eu tenho essa tela:

5 Respostas

Jelson1

Você deve postar o código da View.py , Model.py e o Form.py se tiver utilizando. Até mais!

T
//No arrquivo settings:

MEDIA_ROOT = os.path.join(BASE_DIR, media)

MEDIA_URL = /media/templates/images/

//Em Models:

image1 = models.ImageField(upload_to=templates/images/, verbose_name=Imagem 1, null=True, blank=True )

image2 = models.ImageField(upload_to=templates/images/, verbose_name=Imagem 2, null=True, blank=True )

image3 = models.ImageField(upload_to=templates/images/, verbose_name=Imagem 3, null=True, blank=True )

image4 = models.ImageField(upload_to=templates/images/, verbose_name=Imagem 4, null=True, blank=True )

image5 = models.ImageField(upload_to=templates/images/, verbose_name=Imagem 5, null=True, blank=True )//

//No arquivo de formulário,
Foto 1
Foto 2
Foto 3
Foto 4
Foto 5
// Eu consegui carregar, quando acesso o admin aparece erro para encontrar no caminho: ![image|690x304](upload://oHQcGZX9zaYPBI8xaeCvfL6DV2o.png) Como faço para corrigir, pois se for buscar a imagem não sei como estará configurado
Jelson1

Opa! A formatação do código não ficou legal e também faltou mostrar como tá o código da view. Mas aqui:

//settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'


TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            #adicione o context_processors
            'django.template.context_processors.media',
        ],
    },
},
]

Para acessar a imagem no Templete:

<img src="{{ MEDIA_URL }}/pasta/image.jpg">

Agora para fazer o upload de uma imagem para o servidor faltou mostrar como tá o arquivo view.py e se você está usando os formulários do Django. Mas nesse link tem um bom exemplo:

T
Uma observação, ao inserir a imagem ele funciona, quando acessa no admin aparece esse erro. Vou fazer essas alterações e ver o que ocorre, ficou espalhado o código.

Desculpe, esqueci de enviar:

<a href="//views.py" class="onebox" target="_blank" rel="noopener nofollow ugc">//views.py</a>

@login_required(login_url=’/login/’)

def submit_cadastro_imovel(request):

if request.POST:

nome = request.POST.get(‘nome’)

endereco = request.POST.get(‘endereco’)

cep = request.POST.get(‘cep’)

metros = request.POST.get(‘metros’)

dormitorios = request.POST.get(‘dormitorios’)

banheiros = request.POST.get(‘banheiros’)

garagem = request.POST.get(‘garagem’)

vagas_garagem = request.POST.get(‘vagas_garagem’)

varanda = request.POST.get(‘varanda’)

image1 = request.POST.get(‘image1’)

image2 = request.POST.get(‘image2’)

image3 = request.POST.get(‘image3’)

image4 = request.POST.get(‘image4’)

image5 = request.POST.get(‘image5’)

tipo_contrato = request.POST.get(‘tipo_contrato’)

estado = request.POST.get(‘estado’)

cidade = request.POST.get(‘cidade’)

valor = request.POST.get(‘valor’)

condicao = request.POST.get(‘condicao’)

usuario = request.user

Imovel.objects.create(nome=nome,

endereco=endereco,

cep=cep,

metros=metros ,

dormitorios = dormitorios,

banheiros =banheiros,

garagem = garagem,

vagas_garagem=vagas_garagem,

varanda=varanda,

image1=image1,

image2=image2,

image3=image3,

image4=image4,

image5=image5,

tipo_contrato=tipo_contrato,

estado=estado,

cidade=cidade,

valor=valor,

condicao=condicao,

usuario=usuario

)

return redirect(’/’)

return redirect(’/’)
T
Faltou informar o código html, eu usei o bootstrap também <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pnglight_smile.png?v=10" title=":slight_smile:" class="emoji" alt=":slight_smile:">

//{% extends model-page.html %}

{% block content %}

<div class="lightbox-wrapper"><a class="lightbox" href="/uploads/3X/4/f/4f258604b1142719186fd46a6405a6a0ef6a1330.png.webp" data-download-href="/uploads/default/4f258604b1142719186fd46a6405a6a0ef6a1330" title="image"><img src="/uploads/3X/4/f/4f258604b1142719186fd46a6405a6a0ef6a1330.png.webp" alt="image" data-base62-sha1="bia73SDHy3Jhjxhv87rKBMkqjpC" width="690" height="142" srcset="/uploads/3X/4/f/4f258604b1142719186fd46a6405a6a0ef6a1330.png.webp, /uploads/3X/4/f/4f258604b1142719186fd46a6405a6a0ef6a1330.png.webp 1.5x, /uploads/3X/4/f/4f258604b1142719186fd46a6405a6a0ef6a1330.png.webp 2x" data-small-upload="/uploads/3X/4/f/4f258604b1142719186fd46a6405a6a0ef6a1330.png.webp"><div class="meta">
<svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg>image906×187 16 KB<svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg>
</div></a></div>
Criado 29 de novembro de 2021
Ultima resposta 30 de nov. de 2021
Respostas 5
Participantes 2