I have something like this:
class Basket(models.Model):
owner = models.ForeignKey(User, related_name='user_basket', verbose_name='Owner')
name = models.CharField("Basket_Name", max_length=30)
products = models.ManyToManyField('Product', through='BasketProduct', blank=True, null=True)
class BasketProduct(models.Model):
product = models.ForeignKey('Product')
basket = models.ForeignKey('Basket')
quantity = models.IntegerField()
I try get all products from user Basket and create with their price and name string in the form of “Notebook – 2, PC – 5, Phone – 1”
My try:
user = request.user
b = Basket.objects.filter(owner=user)
bp = BasketProduct.objects.filter(basket=b)
for a in bp:
a = '%s - %s' % (a.product, a.quantity)
print a
This return something like this in shell:
[06/Oct/2012 19:44:41] "GET /list/ HTTP/1.1" 200 0
PC - 3 #single object
Notebook - 1 #second single object
I need: string = “PC – 3, Notebook – 1”
Please help
You can do the first three statements you are already doing. Then join the array of intermediate results returned by looping over the queryset resulting from the first three statements: