【发布时间】:2010-11-01 01:09:25
【问题描述】:
我有一个模型来代表我在我的网站上展示的画作。在主网页上,我想展示其中的一些:最新的、大部分时间未访问的、最受欢迎的和随机的。
我正在使用 Django 1.0.2。
虽然前 3 个使用 django 模型很容易提取,但最后一个(随机)给我带来了一些麻烦。在我看来,我可以将其编码为如下所示:
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
它看起来不像我想要的东西——这完全是数据库抽象的一部分,应该在模型中。另外,在这里我需要处理已删除的记录(那么所有记录的数量不会涵盖我所有可能的键值)以及可能还有很多其他事情。
我可以如何做到这一点,最好是在模型抽象内部的任何其他选项?
【问题讨论】:
-
在我看来,如何显示内容以及显示哪些内容是“视图”级别或业务逻辑的一部分,应该进入 MVC 的“控制器”级别。
-
在 Django 中,控制器是视图。 docs.djangoproject.com/en/dev/faq/general/…
-
应该有一个内置函数——不使用
order_by('?')
标签: python django django-models