2012-10-06 165 views
0

的字符串我有這樣的事情:創建多個對象

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() 

我試圖得到用戶Basket所有產品,並在「筆記本的形式與他們的價格和名稱字符串創建 - 2,PC - 5,電話 - 1"

我嘗試:

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 

這回這樣的事情在外殼:

[06/Oct/2012 19:44:41] "GET /list/ HTTP/1.1" 200 0 
PC - 3 #single object 
Notebook - 1 #second single object 

我需要:字符串= 「PC - 3,筆記本 - 1」

請幫

回答

1

你可以做你已經做的前三個語句。然後join通過從前三條語句導致的查詢集循環返回的中間結果數組:

', '.join(['%s - %s' % (a.product, a.quantity) for a in bp])