【发布时间】:2014-07-29 02:15:01
【问题描述】:
我正在尝试在衬衫产品数据库中创建一些查询。一个表包含所有股票和价格信息(例如,xs_stock、xs_original_price、xs_sale_price)。当客户将产品添加到他们的购物车时,它会保存它的大小,我想使用一个变量来进行适当的查询。例如:
size = 'Small'
size_query = 's_original_price'
product.shirtstyle_set.all()[0].size_query
#substitute in 's_original_price' with query, which would work if typed by hand
相反,我得到了AttributeError: 'ShirtStyle' object has no attribute 'size_query'。
我现在知道这不是设置库存数据库的最佳方式,但我想在修复它之前弄清楚这一点。提前致谢。
编辑添加我的models.py:
class ShirtStyle(models.Model):
shirt = models.ForeignKey(Shirt)
product_id = models.ForeignKey(Product, null=True, blank=True)
pattern = models.CharField(max_length=50, null=False, blank=False)
primary = models.BooleanField(default=False)
xs_stock = models.IntegerField(default=0)
xs_original_price = models.DecimalField(max_digits=8, decimal_places=2, default=1999, blank=False, null=False)
xs_sale_price = models.DecimalField(max_digits=8, decimal_places=2, null=True, blank=True)
s_stock = models.IntegerField(default=0)
s_original_price = models.DecimalField(max_digits=8, decimal_places=2, default=1999, blank=False, null=False)
s_sale_price = models.DecimalField(max_digits=8, decimal_places=2, null=True, blank=True)
m_stock = models.IntegerField(default=0)
m_original_price = models.DecimalField(max_digits=8, decimal_places=2, default=1999, blank=False, null=False)
m_sale_price = models.DecimalField(max_digits=8, decimal_places=2, null=True, blank=True)
l_stock = models.IntegerField(default=0)
l_original_price = models.DecimalField(max_digits=8, decimal_places=2, default=1999, blank=False, null=False)
l_sale_price = models.DecimalField(max_digits=8, decimal_places=2, null=True, blank=True)
xl_stock = models.IntegerField(default=0)
xl_original_price = models.DecimalField(max_digits=8, decimal_places=2, default=1999, blank=False, null=False)
xl_sale_price = models.DecimalField(max_digits=8, decimal_places=2, null=True, blank=True)
【问题讨论】:
标签: django django-models django-orm