我无法找出我在 django 模板中显示数据库数据的错误
I can't find out my mistake in displaying database data in django template
我正在做一个 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 template
<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/
定义了两条路径。这意味着如果用户访问 index/
URL,第一个视图将“触发”并呈现模板。结果它将触发 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'),
<strong>path('index/', views.viewposts, name='posts')</strong>
]
我正在做一个 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 template
<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/
定义了两条路径。这意味着如果用户访问 index/
URL,第一个视图将“触发”并呈现模板。结果它将触发 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'),
<strong>path('index/', views.viewposts, name='posts')</strong>
]