Проблема с добавлением новых моделей категорий и поиском постов с их помощью
Добрый день! У меня есть django приложение, на главной (индексной) странице у меня есть посты, и есть сайдбар В сайдбаре есть код для показа и поиска постов в конкретной категории, (я скопировал его из учебника, а учитель не показал как с этим работать), сейчас есть только 1 категория, которая успешно работает (называется просто "категория"), мне нужно добавить 2 новые модели категорий, с той же функциональностью, но с другими моделями (дата публикации и университет)
здесь базовый html (боковая панель с функциональностью здесь)
здесь индекс html
{% extends 'women/base.html' %}
{% block content %}
<ul class="list-articles">
{% for p in posts %}
<li>
<div class="article-panel">
<p class="first">Категория: {{p.cat}}</p>
<p class="last">Дата: {{p.time_update|date:"d-m-Y H:i:s"}}</p>
</div>
<div class="article-panel">
<p class="first">Университет: {{p.univercity}}</p>
</div>
<h2>{{p.title}}</h2>
{% autoescape on %}
{{p.content|linebreaks|truncatewords:50}}
{% endautoescape %}
<div class="clear"></div>
<p class="link-read-post"><a href="{{ p.get_absolute_url }}">Читать пост</a></p>
</li>
{% endfor %}
</ul>
{% endblock %}
здесь модели py (univercity и Yearp - копии Category)
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import User
class Women(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=255, verbose_name="Название объявления")
content = models.TextField(blank=True, verbose_name="Текст объявления")
contact = models.CharField(max_length=255, verbose_name="Контакты для связи)")
time_create = models.DateTimeField(auto_now_add=True, verbose_name="Время создания")
cat = models.ForeignKey('Category', on_delete=models.PROTECT, verbose_name="Категории")
university = models.ForeignKey('University', on_delete=models.PROTECT, verbose_name="Университет")
yearp = models.ForeignKey('Yearp', on_delete=models.PROTECT, verbose_name="Год публикации")
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
class Meta:
verbose_name = 'Обьявления'
verbose_name_plural = 'Обьявления'
ordering = ['id']
def get_absolute_url(self):
return reverse('post', args=(str(self.id)))
#####################################################################
class Category(models.Model):
name = models.CharField(max_length=100, db_index=True, verbose_name="Категория")
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('category', kwargs={'cat_slug': self.slug})
class Meta:
verbose_name = 'Категория'
verbose_name_plural = 'Категории'
ordering = ['id']
####################################################################
class University(models.Model):
name = models.CharField(max_length=100, db_index=True, verbose_name="Университет")
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('university', kwargs={'university_slug': self.slug})
class Meta:
verbose_name = 'Университет'
verbose_name_plural = 'Университет'
ordering = ['id']
class Yearp(models.Model):
name = models.CharField(max_length=100, db_index=True, verbose_name="Год публикации")
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('yearp', kwargs={'yearp_slug': self.slug})
class Meta:
verbose_name = 'Год публикации'
verbose_name_plural = 'Год публикации'
ordering = ['id']
здесь есть урлы
urlpatterns = [
path('', WomenHome.as_view(), name='home'),
path('personal', PersonalPage.as_view(), name='personal'),
path('about/', about, name='about'),
path('addpage/', AddPostView.as_view(), name='add_page'),
path('contact/', ContactFormView.as_view(), name='contact'),
path('login/', LoginUser.as_view(), name='login'),
path('logout/', logout_user, name='logout'),
path('register/', RegisterUser.as_view(), name='register'),
path('post/<int:pk>/', ShowPost.as_view(), name='post'),
path('category/<slug:cat_slug>/', WomenCategory.as_view(), name='category'),
]
здесь list_categories.html
{% for c in cats %}
{% if c.pk == cat_selected %}
<li class="selected">{{c.name}}</li>
{% else %}
<li><a href="{{ c.get_absolute_url }}">{{c.name}}</a></li>
{% endif %}
{% endfor %}
Я попытался просто скопировать все эти поля, но когда я закончил, это не сработало Я буду очень благодарен тому, кто сможет помочь с этим