1
我是Django的新手,想要編寫符合其思想的代碼。我期待看看這是否曾被問及,但我找不到與我的用例相匹配的任何內容。我懷疑我只是不知道正確的術語。Django:從多個關聯模型加入數據的最佳方法
情況很簡單,涉及到Django的ORM。我有兩個型號,例如:
class A(models.Model):
name = models.CharField()
class Meta(models.Model):
a = models.OneToOneField(A)
n_views = models.IntegerField()
created = models.DateField()
A存儲一些核心數據。 Meta是元數據,對應於A中的每個條目。問題是,當我需要訪問A條目和相關的元數據條目時,問題就來了。例如,我可能想要打印彙總表:
________________________
A |
name | created | n_views|
josh | 1/1/2000| 1 |
john | 2/2/2000| 4 |
________________________
我現在做的是這樣的:
as = A.objects.all()
meta = [Meta.objects.filter(a__pk=a.pk) for a in as]
現在我所有的數據,我需要,我可以把它放在一起,用手,在列表中:
data = []
for a,m in zip(as, meta):
data.append({'name': a.meta, 'created': m.created, 'n_views': m.n_views})
此列表的字典現在可以轉發到我的模板。
這有效,但對我來說似乎有點笨拙;如果Django沒有更好的處理方法,我會感到驚訝。任何人都可以指出我更簡潔的做法嗎?
謝謝!
這看起來像一個很好的解決方案,但我無法阻止自己指出你不應該使用as,因爲它是一個Python保留字。 https://docs.python.org/2.5/ref/keywords.html –
對不起,這個'as'只是我沒有多少想到的一些示例代碼。好點子。 –
這正是我想要的!謝謝,西蒙。 –