我不太確定你在問什麼;因爲排序是一回事,而相關對象的分組完全是另一回事。
數據庫不存儲事物的順序,而是存儲事物的關係(分組)。事物的順序是用戶界面的細節,而不是數據庫應該使用的東西。
在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