0
我有兩個模型,如下所示。django函數裏面的模型,顯示結果裏面的模板
PRODUCT_TYPE=(('TL','Tubeless Tyre'), ('TT','Tubed Tyre'), ('NA','Not applicable'))
class Product(models.Model):
product_group=models.ForeignKey('productgroup.ProductGroup', null=False,blank=False)
manufacturer=models.ForeignKey(Manufacturer, null=False,blank=False)
product_type=models.CharField(max_length=2, choices=PRODUCT_TYPE,)
opening_stock=models.PositiveIntegerField(default=0)
def __str__(self):
return '%s (%s, %s, %s) o.stock = %d ' % (self.product_group, self.manufacturer, self.product_type ,self.opening_stock)
unique_together = ('product_group', 'manufacturer','product_type')
def get_total_stock_in(self):
Stock.objects.filter(product=self.id,ttype='I').aggregate(Sum('quantity'))
def get_total_stock_out(self):
Stock.objects.filter(product=self.id,ttype='I').aggregate(Sum('quantity'))
和
TRANSACTION_TYPE=(('I','Stock In'),('O','Stock Out'))
class Stock(models.Model):
product=models.ForeignKey('product.Product', blank=False,null=False)
date=models.DateField(blank=False, null=False,)
quantity=models.PositiveIntegerField(blank=False, null=False)
ttype=models.CharField(max_length=1,verbose_name="Ttransaction type",choices=TRANSACTION_TYPE, blank=False)
added_date=models.DateTimeField(blank=False, auto_now=True)
def get_absolute_url(self):
return reverse('product_detail', args=[str(self.product.id)])
def __str__(self):
return ('[%s] %s (%s) %d' %(self.product, self.date, self.ttype, self.quantity))
和一個視圖
class ProductList(ListView):
model=Product
我的目的是有兩個functions get_total_stock_in()
和functions get_total_stock_out()
查找每個產品的所有stock_ins和stock_outs的總和並顯示結果在模板中product_list.html
爲此,我有
<ul>
{% for product in object_list %}
<li><a href="{%url 'product_detail' product.id %}">{{ product.product_group}}-{{ product.product_type}}
{{ product.manufacturer}} </a>
opening.stock: <b>{{ product.opening_stock}} </b>,
total s/i: {{product.get_total_stock_in.quantity__sum}} ,
total s/o: {{product.get_total_stock_out.quantity__sum}}
</li>
{% endfor %}
</ul>
我不知道如何得到想要的結果。
任何幫助,將不勝感激。
謝謝。
除了在get_total_stock_out方法中使用類型I而不是O之外,您有什麼問題?當您嘗試此代碼時會發生什麼? –
我得到的輸出爲空 – art06
如果你還有一個問題,你應該問它作爲一個新的問題完成你試過和研究 – Sayse