【发布时间】:2020-11-17 10:22:10
【问题描述】:
我正在使用基于 Python 的 django 框架的夹层,我正在尝试为我的博客文章添加一个方法。在 models.py 中,我添加了一个增量计数器用作 id 参考。
`
def get_new_id():
n = 100
i = 1
for i in range(n):
if i ==100:
break
print (i) ##just checking if it actually did what I asked
return i
这样我希望能够在我的主页上显示最新的帖子,而无需手动更改它。 我可能仍然需要反转计数,以便最后一篇博文成为第 1,但无论如何,问题不在于。
我知道代码可能已经太少了,但即使是这个简单的循环也不会在控制台中打印 i ,更不用说将自己放入元标记中了。我已经在正确的 html 页面中添加了对该方法的引用(或者我相信)
来自 blog_post_list.html
{% for blog_post in blog_posts.object_list %}
<div id="{{ blog_post.get_new_id }}" class="post-preview">
<a href="{{ blog_post.get_absolute_url }}">
<h2 class="post-title">
{{ blog_post.title }}
</h2>
</a>
{% if settings.BLOG_USE_FEATURED_IMAGE and blog_post.featured_image %}
{% block blog_post_list_post_featured_image %}
<a href="{{ blog_post.get_absolute_url }}">
<img class="img-thumbnail" src="{{ MEDIA_URL }}{% thumbnail blog_post.featured_image 730 474 %}">
我想知道这是否只是写得不好的方法,还是我完全做错了其他事情。如果我可以为每篇博文分配一个 ID,我可以在我网站上的任何地方使用它,这将是非常棒的。我还是个新手,所以我很感激你能得到的任何帮助。目前,当我运行此代码时,ID 没有在 html 中实现,而是整个方法都被忽略了。 div 的 id 元标记保持为空。但是,从同一页面 (blog_post_list.html) 调用其他方法并以相同的方式正常工作,因此链接就在那里。
提前致谢
【问题讨论】:
-
为什么不使用
blog_post.id或blog_post.pk而不是调用自定义方法 -
说实话,我不知道那里有。我刚刚注意到 models.py 文件包含类 blogpost 和我的 blogpost 的大部分查询。我找到了它,它确实按预期工作。我认为它是从父类和 .py 文件继承的方法吗?谢谢!
-
我找到了来源。再次感谢!
标签: python django loops mezzanine