2017-06-25 8 views
2

私はdjangoを初めて使用しています。私は 'allpost'ビューで私の 'blog'で作成したmypost(データベースに保存したもの)プロジェクト。ここ はcodes-djangoのデータベースに保存されている投稿は表示されません

{% extends 'blog/base.html' %} 

{% block content %} 

{% for post in post %} 

{{post.title}} 

{% endfor %} 

{% endblock %} 
allpostpage.html- views.py-

from django.shortcuts import render,redirect 
from . models import Post 
from django.utils import timezone 
from . forms import PostForm 

def blog(request): 
    return render(request,'blog/blogpage.html') 

def allpost(request): 
    post=Post.objects.all() 
    return render(request, 'blog/allpostpage.html', {'post': Post}) 
# the posts are not displaying in this template # 

def form(request): 
    if request.method=='POST': 
     form=PostForm(request.POST) 
     if form.is_valid(): 
      post=form.save(commit=False) 
      post.published_date=timezone.now() 
      post.save() 
      return redirect('allpost') 
    else: 
     form=PostForm() 
     return render(request,'blog/formpage.html',{'form':form}) 

urls.py-

from django.conf.urls import url 
from . import views 

urlpatterns=[ 
    url(r'^$',views.blog,name="blog"), 
    url(r'^form$',views.form,name="form"), 
    url(r'^allpost$',views.allpost,name="allpost"), 
] 

formpage.html-

{% extends 'blog/base.html' %} 
<head> 
<title>form</title> 
</head> 
<body> 
{% block content %} 
<form method="POST" class="post-form"> 
{% csrf_token %} 
{{form.as_p}} 
<button type="submit" class="save-btn btn-default">save</button> 

</form> 
{% endblock %} 
</body> 
</html> 

です

models.py-

from django.db import models 
from django.utils import timezone 

class Post(models.Model): 
    title=models.CharField(max_length=200) 
    content=models.TextField(max_length=500) 
    published_date=models.DateTimeField(blank=True) 

    def publish_date(self): 
     Post.published_date=timezone.now() 
     Post.save() 

    def __str__(self): 
     return self.title 

forms.py-

from django import forms 
from . models import Post 

class PostForm(forms.ModelForm): 
    class Meta: 
     model=Post 
     fields=('title','content') 

ものが私のコードです。確認して修正してください。再び、私たちがフォームで保存した投稿は、 'allpost'ビューの 'allpostpage'テンプレートに表示されません。ありがとう

答えて

3

あなたのビューallpostで。代わりに

return render(request, 'blog/allpostpage.html', {'post': Post}) 

のそれは

return render(request, 'blog/allpostpage.html', {'post': post}) 

する必要がありますし、あなたのallpostpage.htmlでは

{% extends 'blog/base.html' %} 

{% block content %} 

{% for p in post %} 

{{p.title}} 

{% endfor %} 

{% endblock %} 
+0

どうもありがとう:)でなければなりません。それは今働いている。 –

関連する問題