所以基本上我有一个有16个对象的表。我想在我的网站上只显示其中的四个,并希望它每周自动旋转到另外四个等等。我在想,也许一个cronjob会做到这一点,但我宁愿问这里之前,我采取任何行动。
这里是我的models.py
class Liturgicketexty(models.Model):
id = models.AutoField(primary_key=True)
text = models.CharField(max_length=45)
url = models.URLField(max_length=200, blank=True, null=True)
class Meta:
verbose_name_plural = 'Liturgické texty'
def __str__(self):
return self.text
这是我使用这个表格的HTML部分。
<div id="table">
<table>
<thead>
<tr>
<th>Čtení na neděli</th>
</tr>
</thead>
<tbody>
{% for l in liturgicketexty %}
<tr>
<td><a href="{{ l.url }}">{{ l.text }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
如果有人需要的话。
我说过了我试图研究一些解决办法,但没有发现任何有希望的。如果你发现或知道什么,我将不胜感激。
2条答案
按热度按时间c7rzv4ha1#
下面是一个每周选择4个不同对象的视图示例。四周后,它会返回显示前4个对象,依此类推。
datetime.now().strftime("%W")
返回当前周的数字(更多细节here)。esbemjvw2#
最好是使用cron job。根据我的经验,视图中的任何代码只有在有人访问该视图时才会执行,而且,在视图函数中进行这样的计算不是一个好主意。例如,如果您的网站在该视图上每天有1000个访问者,这意味着您将仅在该视图上进行该数量的计算,并且如果您选择将当前周存储在数据库中,则还必须在每次调用或访问时更新DB
但是如果你使用cron作业,你每周只更新一次视图。