Django | Не отображаются модели на сайте
Понимаю, что возможно на просторах интернета уже есть ответ, но я прям понять уже не могу.
settings.py
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'media')
]
STATIC_URL = "/static/"
STATIC_ROOT = BASE_DIR / "staticfiles"
MEDIA_URL = "/media/"
MEDIA_ROOT = BASE_DIR / "mediafiles"
# Default primary key field type
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
models.py
class Portfolio(models.Model):
class Meta:
verbose_name_plural = 'Проекты'
verbose_name = 'Портфолио'
ordering = ["name"]
date = models.DateTimeField(blank=True, null=True)
name = models.CharField(max_length=200, blank=True, null=True)
description = models.CharField(max_length=500, blank=True, null=True)
body = RichTextField(blank=True, null=True)
image = models.ImageField(blank=True, null=True, upload_to="portfolio")
slug = models.SlugField(null=True, blank=True)
is_active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
if not self.id:
self.slug = slugify(self.name)
super(Portfolio, self).save(*args, **kwargs)
def __str__(self):
return self.name
def get_absolute_url(self):
return f"/portfolio/{self.slug}"
urls
urlpatterns = [
path('', views.IndexView.as_view(), name="home"),
path('contact/', views.ContactView.as_view(), name="contact"),
path('portfolio/', views.PortfolioView.as_view(), name="portfolios"),
path('portfolio/<slug:slug>', views.PortfolioDetailView.as_view(), name="portfolio"),
path('blog/', views.BlogView.as_view(), name="blogs"),
path('blog/<slug:slug>', views.BlogDetailView.as_view(), name="blog"),
]
view.py
class PortfolioView(generic.ListView):
model = Portfolio
template_name = "main/portfolio.html"
paginate_by = 10
def get_queryset(self):
return super().get_queryset().filter(is_active=True)
index.html
<section>
<div class="sectionSpace">
<div class="container">
<div class="portfolioCol">
<div class="row pb-3">
<div class="col">
<h4 class="smText regular">Мои проекты:</h4>
</div>
<div class="col-auto">
<a href="{% url 'main:portfolios' %}" class="simpleLink">Посмотреть все</a>
</div>
</div>
{% for p in portfolios %}
{% if p.is_active == True %}
<div class="portfolioCard">
<div class="row g-4 align-items-center">
<div class="col-md-auto">
<div class="portfolioImgCol">
<a href="{% url 'main:portfolio' slug=p.slug %}"><img src="{{p.image}}" alt="..."></a>
</div>
</div>
<div class="col-md">
<div class="portfolioContentCol">
<h4 class="lgTitle"><a href="{% url 'main:portfolio' slug=p.slug %}">{{p.name}}</a></h4>
<ul class="portfolioOption">
<li><span class="dateLbl">{{p.date.year}}</span></li>
</ul>
<p>{{p.description}}</p>
</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}