2011-07-28 6 views
3
class Ticket(models.Model): 
    event = models.ForeignKey(Event) 
    name = models.CharField('Name', max_length=255) 
    price = models.FloatField('Price', blank=True) 

class CartItem(models.Model): 
    cart = models.ForeignKey(Cart)  
    ticket = models.ForeignKey(Ticket) 
    quantity = models.IntegerField() 

Comment puis-je obtenir Ticket.price * CartItem.Quantity où l'événement = événementDjango queryset question

+0

Si vous regardez dans 'Ticket', il a un attribut' cartitem_set' qui peut fournir une liste de tous les 'CartItems' qui se réfèrent au ticket. Puisqu'il peut y en avoir plus d'un, il n'y a pas de simple quantité de prix de billets. Il pourrait y avoir plusieurs quantités. –

+0

@Nai a fait la réponse ci-dessous vous aider? –

Répondre

4

Vous devrez ajouter le contrôle d'erreur mais vous pouvez faire quelque chose comme cette logique-sage:

total = 0 
cart_items = CartItem.objects.filter(ticket__event=event) # assuming there are multiple cart items per event 
for cart_item in cart_items: 
    new_total = cart_item.ticket.price * cart_item.quantity 
    total = total + new_total 

Cela devrait vous donner le revenu total pour un événement.