我有一個關於如何在啓動模型實例時動態設置模型屬性的問題。Django:基於JSONField動態設置模型實例屬性
我使用了原生的PostgreSQL JSONField一個簡單的模型:
from django.db import models
from django.contrib.postgres.fields import JSONField
class Booking(models.Model):
data = JSONField(blank=False, encoder=DjangoJSONEncoder)
有什麼辦法來設置基於存儲的「數據」字段中的值的模型實例屬性當模型實例?
我希望能夠做到這一點:
from .models import Booking
b = Booking.objects.create(data={'foo':'bar'})
b.foo # this should yield 'bar'
我最初的想法是要覆蓋模型的初始化方法,並設置有SETATTR()的實例屬性,但覆蓋模型的初始化方法在Django文檔中強烈建議不要使用它。
有沒有其他辦法可以達到這個目的?任何幫助表示讚賞。 PS:我知道我可以在模型實例中訪問存儲在'data'中的值,如:booking.data ['foo'],所以這不是我正在尋找的。
聽起來像自己綁起來節只是使用JSONField – e4c5