2012-09-20 25 views
1

比方說,我有這樣的模式: models.pyDjango,djblets,datagrid - 如何使用關係?

class Tool: 
    name = models.CharField() 
    price = models.DecimalField() 

class Storage: 
    tool = models.ForeignKey('tools') 
    count = models.Integerfield() 

然後在datagrids.py

class StorageDataGrid(DataGrid): 
    tool = Column() 
    count = Column() 
    price = ? 

def __init__(self, request): 
     DataGrid.__init__(self, request, queryset=Storage.objects.all()) 
     self.default_columns = ['tool', 'count', 'price'] 

的問題是,如何界定價格列。或者如何在查詢集中使用它。

回答

1

所以到目前爲止,我已經找到了唯一的辦法就是實際延長存儲的模型定義:

def price(self): 
    return tool.price 
+0

利用上述方案還有另外一個問題。無法使用Column定義中的sortable = True參數。所以仍然在尋找如何將價格字段添加到包含在Queryset中的模型對象的實例中。已嘗試原始查詢(LEFT JOIN),但這不適用於djblets數據網格,需要是Queryset的實例。 – user1685860