Я пытаюсь отобразить один пост в Django, но получаю: Server Error(500)
Я использую Django для отображения моделей моих постов. Когда я пытаюсь отобразить несколько постов, это работает, но один пост не работает. Я не совсем понимаю, почему. Вот что я сделал:
views.py
def post(request, pk):
post = Post.object.get(id=pk)
context = {'post': post}
return render(request, 'base/post.html', context)
urls.py
urlpatterns = [
path('', views.home, name="home"),
path('posts/', views.posts, name='posts'),
path('post/<str:pk>/', views.post, name='post'),]
post.html
<h3>{{post.headline}}</h3>
<h4>{{post.sub_headline}}</h4>
<p>{{post.body|linebreaks}}</p>
Редактирование: Больше информации
Постовая модель
class Post(models.Model):
headline = models.CharField(max_length=200)
sub_headline = models.CharField(max_length=200, null=True, blank=True)
# thumbnail =
body = models.TextField(null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
featured = models.BooleanField(default=False)
tags = models.ManyToManyField(Tag, null=True)
# slug
def __str__(self):
return self.headline
post.html
{% extends 'base/main.html' %}
{% load static %}
{% block content %}
<div class="main-container">
<img src="{% static 'images/peace.png' %}">
<h3>{{post.headline}}</h3>
<h4>{{post.sub_headline}}</h4>
<p>{{post.body|linebreaks}}</p>
</div>
{% endblock content %}
base/main.html
<!Doctype html>
{% load static %}
<html>
<head>
<title>Peace Cyebukayire</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1" />
<link href="https://fonts.googleapis.com/css2?family=Russo+One&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@500&family=Russo+One&display=swap" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{% static 'css/default.css' %}">
</head>
<body>
{% include 'base/navbar.html' %}
{% block content %}
<!-- Content goes here -->
{% endblock content %}
</body>
</html>
Когда я устанавливаю Debug=True, вот что я получаю:
Traceback (most recent call last):
File "/home/peace/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/peace/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/peace/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/peace/Desktop/Tutorials/Django/my-portfolio/base/views.py", line 24, in post
post = Post.object.get(id=pk)
Exception Type: AttributeError at /post/1/
Exception Value: type object 'Post' has no attribute 'object'
Выпуск № 1
.
Ваши представления очень плохо названы, ранее уже возникали проблемы, подобные вашей, из-за названий представлений. Ошибка иногда возникает, когда имя вашего представления конфликтует с вашей моделью/вашим собственным представлением/встроенными функциями Джанго
Выпуск № 2
post = Post.object.get(id=pk) # is WRONG
post = Post.objects.get(id=pk) # OBJECTS is the correct syntax