2
我的Django項目使用postgresql 9.4,它支持JSON字段。我想使用這些字段從關係轉換爲(部分)非關係模式。Django的非關係數據庫模式與postgres
說我有模型Foo
和Bar
和每個對象Bar
只屬於一個Foo
。目前,我使用從Bar
到Foo
的ForeignKey來建模,但我想切換到將Bar
對象作爲模型實例列表直接存儲在Foo
中。使用postgresql,我可以在Foo
中使用JSONField
這將存儲一個JSON表示的列表Bar
對象,但是我不得不手動處理序列化爲JSON。
MongoDB的ORM的Django提供Django的領域做,在一個乾淨的方式:
class Foo(models.Model):
bar_list = ListField(EmbeddedModelField('Bar'))
有沒有辦法有一個與Postgres後端類似的功能?
謝謝,但我一直在玩數據現在,我知道我運行它的查詢,我非常確定我需要這個重構來加速事情(1.我不查詢嵌套對象2.我不需要這個3.這應該由ORM來處理4.對這些模型的改變已經是python重5.嵌套對象很少,Foo中Bar對象的平均數目很接近到一)。 – pintoch
我知道你錯了。我不質疑你對數據的知識,我只是給你我之前經歷的和這種方法的缺點。 既然你絕對需要這個,你可以使用自Django 1.9以來的JSONField。它接收一個Python對象並將其保存爲JSON,當它被檢索到時,再次將get解析爲Python。 –
是的,這也是我在我的問題中提到的,我只是想知道是否存在更高級別的版本。顯然沒有,所以這就回答了這個問題。 :-) – pintoch