Я пытаюсь добавить фотографии в свое веб-приложение Django. У меня есть модель в моем models.py, который, который выглядит примерно так:ImageField url возвращает пустую строку
# models.py
from django.db import models
# Create your models here.
class Protese(models.Model):
'''Proteses usadas no High Five'''
# Parte independente da lingua
Nome = models.CharField(max_length = 200)
Autores = models.CharField(max_length = 200)
AutoresURL = models.CharField(max_length = 200)
Foto = models.ImageField()
Data = models.DateTimeField()
# Portugues
Descricao = models.TextField()
# Ingles
Description = models.TextField()
def __str__(self):
return self.Nome
class Membro(models.Model):
'''Membros do projeto'''
# Parte independente da lingua
Nome = models.CharField(max_length = 200)
Foto = models.ImageField()
LinkedIn = models.CharField(max_length = 200)
# Portugues
Posicao = models.CharField(max_length = 200)
Frase = models.TextField()
# Ingles
Position = models.CharField(max_length = 200)
Quote = models.TextField()
def __str__(self):
return self.Nome
class FeaturedImage(models.Model):
''' Imagem que aparece no comeco da pagina principal'''
Image = models.FileField()
# Portugues
Titulo = models.CharField(max_length = 200)
Texto = models.TextField()
# Ingles
Title = models.CharField(max_length = 200)
Text = models.TextField()
class Post(models.Model):
''' Posts de noticias '''
Imagem = models.ImageField()
# pt
Titulo = models.CharField(max_length = 200)
Texto = models.TextField()
# en
Title = models.CharField(max_length = 200)
Text = models.TextField()
Для моего settings.py У меня есть следующий код:
# settings.py
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = posixpath.join(*(BASE_DIR.split(os.path.sep) + ['static']))
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
и для моего urls.py я имею следующий:
# urls.py
from datetime import datetime
from django.conf.urls import url
import django.contrib.auth.views
import app.models as models
import app.views as views
# Uncomment the next lines to enable the admin:
from django.conf.urls import url,include
from django.contrib import admin
admin.autodiscover()
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# Pagina principal
url(r'^$',views.index,kwargs = {'lang':'pt'} ,name = 'index'),
url(r'^index.html$',views.index,kwargs = {'lang':'pt'} ,name = 'index'),
url(r'^en/$',views.index,kwargs = {'lang':'en'} ,name = 'index'),
url(r'^en/index.html$',views.index,kwargs = {'lang':'en'} ,name = 'index'),
# Sobre nos
url(r'^about.html$',views.about, name = 'about'),
# Servicos
url(r'^services.html$',views.services, name = 'about'),
# Contato
url(r'^contact.html$',views.contact, name = 'about'),
# Proteses
url(r'^single/(?P<page_name>[A-Za-z0-9]+)/$',views.single, name='single'),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
Я рендеринг моего взгляда, используя следующий views.py функции:
# views.py
def index(request, lang):
context = {
'featured_images':FeaturedImage.objects.all(),
'proteses': Protese.objects.all(),
'posts': Post.objects.all(),
'lang': lang
}
return render(request, 'web/index.html',context)
но на моем шаблоне, когда я пытаюсь получить URL изображения, набрав:
<ul class="slides">
{% for image in featured_images %}
<li>
<div class="banner-bottom" style="background: url({{ image.Imagem.url }})no-repeat center;">
<div class="container">
<div class="bann-text">
{% if lang == 'pt' %}
<h3> {{image.Titulo}} </h3>
<p>{{image.Texto}}</p>
<p>{{image.Imagem}}</p>
{% else %}
<h3> {{image.Title}} </h3>
<p>{{image.Text}}</p>
{% endif %}
</div>
</div>
</div>
</li>
{% endfor %}
</ul>
У меня есть название показ, но изображение не появляется. Когда я проверить исходный код страницы У меня есть тег изображения appering как:
<div class="banner-bottom" style="background: url()no-repeat center;">
Любая идея о том, почему это происходит? Вот выход из базы данных при запуске:
--dbshell
select * from app_foo;
1|Lorem Ipsum|At vero eos et accusamus et iusto odio dignissimos|Lore Ipsum|Sed ut perspiciatis unde omnis iste natus error|1.png
Где латинский фиктивный кодом является частью Os других вещей в моей модели
Foo имеет значение, установленное ли для изображения в базе данных? – 2ps
Да, я создал объект foo, где я загрузил изображение, и я пытаюсь его отобразить –
Можете ли вы разместить значения в базе данных? – 2ps