0
我有一個名爲Calculation
的模型,它與Measure
以OneToMany
的關係連接。 當第一次創建Calculation
模型對象時,我想啓動某個字典。稍後我填寫值並保存對象。初始創建模型時的初始成員
當從DB 加載對象時不應創建字典,並且在我發出save()
之前不應將其保存到數據庫。
我有紅色的有關信號(1)和工廠(1,2),但我還是有點困惑就如何實現這一目標。
models.py
class Calculation(models.Model):
measure = models.ForeignKey(Measure)
modified_time = models.DateTimeField(auto_now = True)
raw_parameters = hstore.DictionaryField(db_index=True, null=True)
result = models.DecimalField(null=True,max_digits=15, decimal_places=2)
def __init__(self, *args, **kwargs):
# init the relation
super(Calculation, self).__init__(*args, **kwargs)
# init a list of required parameters with empty values
self.raw_parameters = dict((k,None) for k in self.measure.parameters.all().values_list('name',flat=True))
,現在並不好,因爲它也將現有對象加載運行,並在raw_parameters
覆蓋現有值的方式。 我試過了一個create
函數,但它不起作用。
** Django newbi。謝謝。
感謝您的評論。我會更好地解釋我的自我 - 「計算」類提供了某種模擬。我可能會在這個對象上工作一段時間,但最終根本不會保存它,所以我從來沒有實際發出過'save'。是在對象創建時隱式調用的'save'函數? – haki
你需要一個Django模型嗎?爲什麼不簡單地創建一個類呢? – LaundroMat
同意@LaundroMat。僅在需要持久性時才使用模型類。如果不需要持久化,則使用標準類和它的實例。 –