【问题标题】:I can't find out my mistake in displaying database data in django template我在 django 模板中显示数据库数据时找不到错误
【发布时间】:2021-12-17 18:47:13
【问题描述】:

我正在做一个 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/ 模式,因此它会触发NewPostMaker,而不是viewposts

标签: django django-models django-views django-templates django-database


【解决方案1】:

您为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'),
   path('index/', views.viewposts, name='posts')
]

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 2012-03-18
    • 2021-04-21
    • 2013-02-17
    • 2012-07-24
    • 2018-03-07
    • 2014-11-12
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多