這裏有點遺憾。基本上,我在管理部分有一個產品頁面,在底部有一個TabularInline,讓我選擇產品的尺寸並設置價格。這有效,但我試圖得到它,以便它將大小表中的默認價格作爲初始值。從另一個表中填充默認值
我試過如下:
class Size(models.Model):
name = models.CharField(max_length=50)
default_price = models.DecimalField(max_digits=9, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'sizes'
ordering = ['-created_at']
verbose_name_plural = 'Sizes'
def __unicode__(self):
return self.name
def default_price(self):
return self.default_price
然後
class ProductOption(models.Model):
product = models.ForeignKey(Product)
size = models.ForeignKey(Size)
price = models.DecimalField(max_digits=9, decimal_places=2, default=Size.default_price)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
它驗證,但是當我打開管理頁面,我得到如下:
不受約束的方法get_default_price()必須被稱爲Size實例作爲第一個參數(沒有任何代替)
不知道還有什麼地方可以從這裏出發。我一直在查看Django文檔,試圖找到其他的東西來嘗試。有任何想法嗎?
您可能想要將''updated_at''字段更改爲''auto_now'',而不是''auto_now_add',否則它們將與''created_at''字段相同。 – 2011-05-05 08:16:40