我对Django比较新,面对一个我无法解决的问题:
我有两个模型,如:
class Item(models.Model):
char1 = models.CharField(max_length=200)
char2 = models.CharField(max_length=200)
class Entry(models.Model):
item = models.ForeignKey(Item)
choice = models.IntegerField()
我在我的数据库中存储了很多项目,我基本上希望在一个视图中随机迭代所有存储的项目,并且每个项目显示char1和char2,带有IntegerField和'next'按钮,用于存储新的在我的数据库中输入(使用实际项目和类型化整数)并将我引导到下一个(随机)项目。
在研究期间,我发现了表单向导和表单集,但这不是我想要的,向导需要多个表单模型,他可以连续显示,但我想(随机)显示只有一个模型的每个实例(项目)并为每个存储一个条目。
我希望有人可以给我一个提示在哪里寻找,因为我找不到这个用例的文档/教程,因为我对Django不是很有经验,所以我现在无法理解...
提前致以最诚挚的问候和谢意!
答案 0 :(得分:0)
根据您的标题判断,问题是从单个(可能是随机/未分类)模型迭代多个项目。
如果我没弄错的话,你要找的是Pagination。从该文本中,一个小例子是:
>>> from django.core.paginator import Paginator
>>> objects = ['john', 'paul', 'george', 'ringo']
>>> p = Paginator(objects, 2)
>>> p.count
4
>>> p.num_pages
2
>>> p.page_range
[1, 2]
虽然上面显示了一个列表,但{Dj}也可以在Django QuerySets上使用Paginator
,并将其功能整合到Django模板中。
如果这不是你想要的,请告诉我。
欢呼。
答案 1 :(得分:0)
Paulo Bu的回答提供了从Django的AP首先获得随机排序的方法。关于你正在做的事情的棘手部分是,在页面加载之间保存项目的特定随机排序并不是真正RESTful,因为这不是无状态的。默认情况下,您提交请求后,随机排序的查询集将不再存在,并且无法保证您将遍历所有项目而不是重复和未命中。所以你要保存那个订单。如何处理这个问题有很多选择: