Я успешно загрузил изображение из моей админ-панели с помощью ImageField в моем model.py, но я не могу увидеть эффект в моем шаблоне.Пожалуйста, проверьте код ниже и скриншоты.заранее спасибо за помощь.Я могу загрузить изображение, изменить изображение ... в моем администраторе (localhost: 8000 / admin), но проблема в том, что я не могу видеть изображение в (localhost: 8000).
возможность.html
{% extends "frontend/base.html" %} {% load static %} {% block title %}Opportunities{% endblock %} {% block content %}
<section id="blog" class="container">
<div class="blog">
<div class="row">
<div class="col-md-10">
<div class="blog-item">
<div class="row">
<div class="col-xs-12 col-sm-2">
</div>
<div class="col-xs-12 col-sm-10 blog-content">
<a href="#"><img class="img-responsive img-blog" src="{{ opportunity.image1 }}" width="100%" alt="" /></a>
<h4>{{ opportunity.heading1 }}</h4>
<p>{{ opportunity.subheading1 }}</p>
<a class="btn btn-primary readmore">{{ opportunity.link1 }} <i class="fa fa-angle-right"></i></a>
</div>
</div>
</div>
</div>
<aside class="col-md-4">
</aside>
</div>
</div>
</section>
{% endblock %}
views.py
def opportunities(request):
navbar = get_object_or_404(Navbar, ~Q(status='draft'))
opportunity = get_object_or_404(Opportunity, ~Q(status='draft'))
context = {
"opportunity": opportunity,
"navbar": navbar,
}
return render(request, 'frontend/opportunities.html', context)
admin.py
class OpportunityAdmin(admin.ModelAdmin):
list_display = ('heading1', 'author', 'published', 'status',)
list_filter = ('status', 'created', 'published', 'author')
admin.site.register(Opportunity, OpportunityAdmin)
models.py
class Opportunity(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
image1 = models.ImageField(upload_to = 'pic_folder/')
heading1 = models.TextField(max_length=500)
subheading1=models.TextField(max_length=500)
link1 =models.CharField(max_length=30)
author = models.ForeignKey(User, related_name='opportunity')
published = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=9, choices=STATUS_CHOICES, default='draft')
def __str__(self):
return self.heading1
urls.py
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'', include('frontend.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.media',
],
},
},
]
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
ниже скриншот localhost: 8000 / admin, который является административным порталом ниже скриншот localhost: 8000, который является html-шаблоном