Данные модели Django не отображаются

Данные моей модели для моего сайта не появляются на новой странице при использовании slug, и я не знаю, почему это происходит, поскольку мне удалось заставить его работать с предыдущей страницей сайта, но когда я пытаюсь вызвать его на моей html-странице, ничего не загружается, и я использую slug в представлении для доступа к странице.

Models.py

class Parasite(models.Model):
    name = models.CharField(max_length=128, unique=True)
    slug = models.SlugField(max_length=100, unique=True)
    description = models.TextField(max_length=100000)
    image = models.ImageField(upload_to='parasite_images', default='default/default.jpg', blank=True)
        
    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Parasite, self).save(*args, **kwargs)
        
    def __str__(self):
        return self.name

views.py

def view_parasite(request,parasite_name_slug):
    context_dict = {}
    try:
        parasite = Parasite.objects.get(slug=parasite_name_slug)
        context_dict['parasites'] = parasite
    except Parasite.DoesNotExist:
       context_dict['parasites'] = None
    return render(request, 'parasites_app/viewpara.html', context = context_dict)

viewpara.html

{% extends 'parasites_app/base.html' %}
{% load static %}
{% block content_block %}


{% for p in parasite %}
    <h3>{{p.name}}</h3>
   
{% endfor %}

{% endblock %}

urls.py

 urlpatterns = [
           
        
             path('login/', views.user_login, name='login'),
                path('logout/', views.user_logout, name='logout'),
                path('admin/', admin.site.urls),
                path('', views.public, name='public'),
                path('public/', views.public, name='public'),
                path('private/', views.logged_in_content, name='private'),
                path('public/<slug:parasite_name_slug>/',views.view_parasite, name='view_parasite'),
                path('<slug:post_name_slug>/', views.show_post, name='show_post'),
               
        
          
           
          
        ]
        
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
        urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Первая ошибка - вы получаете один объект Parasite (потому что используете метод get) и вызываете его с множественным именем 'parasites':

parasite = Parasite.objects.get(slug=parasite_name_slug)
context_dict['parasites'] = parasite

Вторая ошибка - когда вы хотите показать это в шаблоне, вы вызываете одиночный parasite, но вы решили назвать ключ parasites.

{% for p in parasite %}

Третья ошибка - не используйте цикл for для одного объекта, просто вызовите его.

Ответ:

views.py

parasite = Parasite.objects.get(slug=parasite_name_slug)
context_dict['parasite'] = parasite

viewpara.html

{% block content_block %}

    {{ parasite.name }}

{% endblock %}
Вернуться на верх