我有以下代碼:Django的 - 創建對象和子對象
class Album(models.Model):
name = models.CharField(max_length=255, unique=True, null=False)
rating = models.ForeignKey("Rating", null=False)
class Rating(models.Model):
value = models.IntegerField(null=False, default=0)
什麼是創建一個對象(專輯)的最佳方式(在Django的/ Python的哲學)和它的子對象(額定值)並保存它?
我已經做到了這一點:
a = Album()
a.name = "..."
r = Rating()
r.save()
a.rating = r
a.save()
我不喜歡這一點,因爲在創建子對象空的部分是完全沒有用的。 我更喜歡一些簡單的方法,這樣的 - 子對象應自動創建:
a = Album()
a.name = "..."
a.save()
非常有趣。 這將等於覆蓋保存方法(並在設置評分後調用父代),否? –
類似的,但這是更可擴展的,因爲其他人也可以寫一個信號,也將與你一起運行。覆蓋保存方法可能會導致問題。但是,是的,你可以用'save()'來代替 – rockingskier
不幸的是,這段代碼(pre_save)似乎不起作用。如果未設置評分,我會得到相同的錯誤消息。我不知道爲什麼? –