我正在做一個 Django 專案。我必須在 Django 模板中顯示資料庫資料,但我找不到我的代碼中不允許我在 HTML 頁面上顯示資料的錯誤。
視圖.py
def viewposts(request):
posts = NewPost.objects.all()
return render(request,"network/index.html",{
"posts" : posts,
})
這是我的模型:
模型.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>
網址.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 頁面上顯示它們。
uj5u.com熱心網友回復:
您為 定義了兩條路徑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')
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/347620.html
標籤:姜戈 django-models django-views django-模板 django 数据库
下一篇:在Django中創建查找
