mercredi 13 août 2014

blog de Django aucun affichage - débutant - Stack Overflow


I am running django 1.4.6 with python 2.7 and I am trying to get a test blog working to help my coding skills - but I have run into some trouble and now I am very confused, so I must ask for some help.


Here is my model.py entry:


class BlogPostDetails(models.Model, FillableModelWithLanguageVersion):
blog_post_title = models.CharField(max_length=100)
blog_post_date_published = models.DateTimeField()
blog_post_author = models.CharField(max_length=50)
blog_post_body = models.TextField()
blog_post_timestamp_added = models.DateTimeField(auto_now_add=True, auto_now=False)
blog_post_timestamp_updated = models.DateTimeField(auto_now=True, auto_now_add=False)

def __unicode__(self):
return self.blog_post_title

Here is my url.py entry:


    url(r'^details/blog_list/$', 'blog_post_list', name='blog_post_list'),

Here is my views.py entry:


def blog_post_list(request):
language_versions = get_language_versions(user=request.user)
blog_posts = BlogPostDetails.objects.filter()
return render(request, 'core/details/blog_list.html', {
'display_default_language': display_default_language(request.user),
'languages': LANGUAGES,
'language_versions': language_versions,
'language_versions_num': len(language_versions),
'popover_string_length_20': settings.POPOVER_STRING_LENGTH_20,
'popover_string_length_500': settings.POPOVER_STRING_LENGTH_500,
})

Here is my template loop where I thought the blog details would be displayed:


{% block page_content %}
{% for blog_post in blog_posts %}
{{ forloop.counter }}<br />
{{ blog_posts.blog_post_body|safe|truncatechars:popover_string_length_500|linebreaksbr }} <br />
{% endfor %}
{% endblock %}

I have added the blog to the admin and added several blog records.


My problem is what have I done incorrectly because nothing is showing in the template. I really need some guidance here.




You haven't appended blog_posts to your context at your view:


def blog_post_list(request):
language_versions = get_language_versions(user=request.user)
blog_posts = BlogPostDetails.objects.filter()
return render(request, 'core/details/blog_list.html', {
'blog_posts': blog_posts, # HERE YOU GO
'display_default_language': display_default_language(request.user),
'languages': LANGUAGES,
'language_versions': language_versions,
'language_versions_num': len(language_versions),
'popover_string_length_20': settings.POPOVER_STRING_LENGTH_20,
'popover_string_length_500': settings.POPOVER_STRING_LENGTH_500,
})


I am running django 1.4.6 with python 2.7 and I am trying to get a test blog working to help my coding skills - but I have run into some trouble and now I am very confused, so I must ask for some help.


Here is my model.py entry:


class BlogPostDetails(models.Model, FillableModelWithLanguageVersion):
blog_post_title = models.CharField(max_length=100)
blog_post_date_published = models.DateTimeField()
blog_post_author = models.CharField(max_length=50)
blog_post_body = models.TextField()
blog_post_timestamp_added = models.DateTimeField(auto_now_add=True, auto_now=False)
blog_post_timestamp_updated = models.DateTimeField(auto_now=True, auto_now_add=False)

def __unicode__(self):
return self.blog_post_title

Here is my url.py entry:


    url(r'^details/blog_list/$', 'blog_post_list', name='blog_post_list'),

Here is my views.py entry:


def blog_post_list(request):
language_versions = get_language_versions(user=request.user)
blog_posts = BlogPostDetails.objects.filter()
return render(request, 'core/details/blog_list.html', {
'display_default_language': display_default_language(request.user),
'languages': LANGUAGES,
'language_versions': language_versions,
'language_versions_num': len(language_versions),
'popover_string_length_20': settings.POPOVER_STRING_LENGTH_20,
'popover_string_length_500': settings.POPOVER_STRING_LENGTH_500,
})

Here is my template loop where I thought the blog details would be displayed:


{% block page_content %}
{% for blog_post in blog_posts %}
{{ forloop.counter }}<br />
{{ blog_posts.blog_post_body|safe|truncatechars:popover_string_length_500|linebreaksbr }} <br />
{% endfor %}
{% endblock %}

I have added the blog to the admin and added several blog records.


My problem is what have I done incorrectly because nothing is showing in the template. I really need some guidance here.



You haven't appended blog_posts to your context at your view:


def blog_post_list(request):
language_versions = get_language_versions(user=request.user)
blog_posts = BlogPostDetails.objects.filter()
return render(request, 'core/details/blog_list.html', {
'blog_posts': blog_posts, # HERE YOU GO
'display_default_language': display_default_language(request.user),
'languages': LANGUAGES,
'language_versions': language_versions,
'language_versions_num': len(language_versions),
'popover_string_length_20': settings.POPOVER_STRING_LENGTH_20,
'popover_string_length_500': settings.POPOVER_STRING_LENGTH_500,
})

0 commentaires:

Enregistrer un commentaire