我有一個名爲Module
的靜態對象。 Module對象的其中一個屬性是'name'
。我有一個名爲Section
的數據庫表,它將模塊密鑰保存在列中。按照Django/Python中的相關對象屬性排序
我想從該表中獲取對象並按照它們相關的模塊的名稱進行排序。
大多數時候,當我引用模塊對象,它是這樣的:section.module.module_object.name
的模型是:
class Section(models.Model):
page = models.ForeignKey(Page)
module = models.CharField(db_index=True, max_length=50, choices=[(k, '%s %s' % (s.service, s.name)) for k, s in MODULES.iteritems()])
我已經試過這樣:
navigation_links = sorted(navigation_links.values(), key=lambda m: m['module'].module_object.name)
但我得到錯誤AttributeError: 'unicode' object has no attribute 'module_object'
U PDATE:這裏是模塊對象:
class Module(object):
def __init__(self, key, name):
self.key = key
self.name = name
# ... list of a lot of ALL_MODULES
#dict of the above list
MODULES = dict([(s.key, s) for s in ALL_MODULES])
@DTTyrsa - 我想從該表中獲取對象並按照它們相關的模塊的名稱進行排序。但是,這兩種方法給我錯誤。 – Brenden
'module'字段只是一個字符串。你需要以某種方式檢索你的對象。當然,你不能在數據庫層面上做到這一點。 – DrTyrsa
@DTTyrsa所以看來我需要從數據庫中抓取它們,然後按照module_object的屬性進行排序。這就是我不知道該怎麼做的。 – Brenden