【问题标题】:Hi, someone can help me with some django views?嗨,有人可以帮助我一些 django 意见吗?
【发布时间】:2021-02-21 03:02:00
【问题描述】:

我希望有人能解决这个问题。我的目标是获取最后一小时的帖子并将它们插入到包含所有信息(作者、标题、文本和发布日期)的字典中。最后我想把它转储到一个 html 文件中。这是我的代码:

views.py

@superuser_only
def PostUltimaOra(request):
    post_detail = {}
    dt = now()
    PostsLastHour = Post.objects.filter(published_date__range=(dt-timedelta(hours=1), dt))
    for each in PostsLastHour:
        post_detail = {
            'author': each.author,
            'title': each.title,
            'text': each.text,
            'published_date': each.published_date,
        }
    dj = json.dump(post_detail)
    return render(request, 'blog/numeroposts.html', {'dj': dj})

models.py

class Post(models.Model):
     author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
     title = models.CharField(max_length=200)
     text = models.TextField()
     created_date = models.DateTimeField(default=timezone.now)
     published_date = models.DateTimeField(blank=True, null=True)


     def publish(self):
         self.published_date = timezone.now()
         self.save()

     def __str__(self):
         return self.title

html

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

{% block content %}
     <h1>{{ 'Posts per utente:' }}</h1>
     {% for k, v in numero.items %}
         {{ 'L utente con id n° '}} {{ k }} {{ ' ha pubblicato '}}  {{ v }} {{ ' posts' }}
         <p>{{ ''|linebreaksbr }}</p>
     {% endfor %}
     <h2>{{ 'I post pubblicati nell utlima ora sono questi: ' }} {{ dj }}</h2>


{% endblock %}

【问题讨论】:

  • 问题是模板里什么都没有

标签: django django-views django-templates


【解决方案1】:

哦...不需要做所有这些,只需将 QuerySet 作为上下文传递给模板...

@superuser_only
def PostUltimaOra(request):
    post_detail = {}
    dt = now()
    PostsLastHour = Post.objects.filter(published_date__range=(dt-timedelta(hours=1), dt))
    
    return render(request, 'blog/numeroposts.html', {'dj': PostsLastHour})

在模板中:

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

{% block content %}
     <h1>{{ 'Posts per utente:' }}</h1>
     {% for k in dj %}
         'L utente con id n°  {{ k.title }}   ha pubblicato   {{ k.author }}  posts
         <p>{{ ''|linebreaksbr }}</p>
     {% endfor %}
     <h2> I post pubblicati nell utlima ora sono questi:  {{ dj|length }}</h2>


{% endblock %}

类似这样的东西(我不会说你的语言)

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多