我不太确定你在问什么;因为排序是一回事,而相关对象的分组完全是另一回事。
数据库不存储事物的顺序,而是存储事物的关系(分组)。事物的顺序是用户界面的细节,而不是数据库应该使用的东西。
在django中,您可以创建ManyToMany
关系。这基本上创建了一个“框”,您可以在其中添加和删除与特定模型相关的项目。下面是从documentation的例子:
from django.db import models
class Publication(models.Model):
title = models.CharField(max_length=30)
# On Python 3: def __str__(self):
def __unicode__(self):
return self.title
class Meta:
ordering = ('title',)
class Article(models.Model):
headline = models.CharField(max_length=100)
publications = models.ManyToManyField(Publication)
# On Python 3: def __str__(self):
def __unicode__(self):
return self.headline
class Meta:
ordering = ('headline',)
下面的文章可以属于多个刊物和出版物都与他们相关联的一个或更多文章:
a = Article.create(headline='Hello')
b = Article.create(headline='World')
p = Publication.create(title='My Publication')
p.article_set.add(a)
p.article_set.add(b)
p.save()
# You can also add an article to a publication from the article object:
c = Article.create(headline='The Answer is 42')
c.publications.add(p)
知道有多少文章属于出版物:
Publication.objects.get(title='My Publication').article_set.count()
对不起,我猜这在我的脑海里是不清楚的,这就是为什么我在努力写作中苦苦挣扎。 我想存储订单状态,以便为用户提供特定的物品订单(与日期,字母字段或物品ID无关)。复杂的因素是将物品放在多个组中。 – richardnpaul
假设您的文章标题为'您好' '至' '我们的' '好友',并且您希望每次都按顺序显示它们。 ID分别为2,4,3,1,添加的日期将跟随ID。你不能通过id,datetime或按字母顺序排列它们,但是你希望你的访问者在输出'Publication.objects.get(title ='My Publication')时看到原来的顺序。article_set.all()'而不是'朋友','你好','我们','到'。在模板中,您需要使用某些功能将演示文稿订购给最终用户,而无需按照您的首选顺序手动输出每个项目的ID。 – richardnpaul