在详细研究之后我放弃了,请帮助修复这个Meta类值.我在尝试使用"get_absolute_url"处理模板URL时遇到错误,因为它响应以下错误.
TypeError:'class Meta'获得无效属性:sale_price,get_absolute_url.
以下是我的代码.
class Meta:
db_table = 'products'
ordering = ['-created_at']
def __unicode__(self):
return self.name
@models.permalink
def get_absolute_url(self):
return ('catalog_product', (), {'product_slug': self.slug})
def sale_price(self):
if self.old_price > self.price:
return self.price
else:
return None
Run Code Online (Sandbox Code Playgroud)
谢谢.
您误解了模型的定义方式.您将方法和属性添加到实际的Model
类中,并使用Meta
该类在类上指定选项:
class MyModel(models.Model):
old_price = ...
price = ...
slug = ...
created_at = ...
...
def __unicode__(self):
return self.name
@models.permalink
def get_absolute_url(self):
return ('catalog_product', (), {'product_slug': self.slug})
def sale_price(self):
if self.old_price > self.price:
return self.price
else:
return None
class Meta:
db_table = 'products'
ordering = ['-created_at']
Run Code Online (Sandbox Code Playgroud)
编辑
此外,不要使用permalink
装饰器,因为它不再推荐:
https://docs.djangoproject.com/en/1.6/ref/models/instances/#the-permalink-decorator
不再推荐永久链接装饰器.您应该在get_absolute_url方法的主体中使用reverse().