Я не могу найти свою ошибку в отображении данных базы данных в шаблоне django
Я работаю над проектом Django. Мне нужно отобразить данные базы данных в шаблоне Django, но я не могу найти ошибку в своем коде, которая не позволяет мне отобразить данные на HTML странице.
views.py
def viewposts(request):
posts = NewPost.objects.all()
return render(request,"network/index.html",{
"posts" : posts,
})
Вот моя модель:
models.py
class NewPost(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE)
post = models.TextField()
timestamp = models.DateTimeField(auto_now_add = True)
def __str__(self):
return f"post : {post} || user: {user} || timestamp: {timestamp} "
HTML шаблон
<div id="posts">
{% for posts in posts %}
<ul>
<li>
<h4>{{ posts.user }} || {{ posts.timestamp }}</h4>
<h3>{{ posts.post }}</h3>
</li>
</ul>
{% empty %}
<h6>No post availabel 😔</h6>
{% endfor %}
</div>
urls.py
urlpatterns = [
path("", views.index, name="index"),
path("login", views.login_view, name="login"),
path("logout", views.logout_view, name="logout"),
path("register", views.register, name="register"),
path("index/",views.NewPostMaker,name="post"),
path("index/",views.viewposts,name="posts")
]
Я знаю, что допустил глупую ошибку в какой-либо части кода, но с трудом могу ее обнаружить. Когда я заполняю форму, данные сохраняются в базе данных, но я не могу отобразить их на HTML-странице.
Вы определили два пути для index/
. Это означает, что если пользователь посетит URL index/
, первый вид "выстрелит" и отобразит шаблон. В результате сработает NewPostMaker
, а не viewposts
.
Таким образом, вы должны определить одно представление, в котором, вероятно, придется объединить логику двух представлений в одно, и таким образом реализовать это как:
urlpatterns = [
path('', views.index, name="index'),
path('login', views.login_view, name='login'),
path('logout', views.logout_view, name='logout'),
path('register', views.register, name='register'),
path('index/', views.viewposts, name='posts')
]