2013-08-24 5 views
11

Getting ein Typ Fehler, "Tuple" -Objekt ist nicht aufrufbar. Irgendeine Idee, was es sein könnte? (Mach dir keine Gedanken über die Einrückung. Es kopiert sich komisch.) Ich versuche, eine Auswahl basierend auf PackSize von Storeliquor zu erstellen.django: TypeError: 'Tuple' Objekt ist nicht aufrufbar

Views.py:

def storeliquor(request, store_id, liquor_id):   
a = StoreLiquor.objects.get(StoreLiquorID=liquor_id) 
s = Store.objects.get(StoreID=store_id) 
x = Order.objects.get(storeID=s, Active=True) 
y = a.OffPremisePrice 
c = a.BottleSize 

g = request.POST.get('OrderAmount', '') 
b = a.PackSize 
h = b*2 
d = b*3 
e = b*4 
r = b*5 
if c == "1750 ML": 
    pack_size = (
     ('1', '1') 
     ('3', '3') 
     (b, b) 
     (h, h) 
     (d, d) 
     (e, e) 
     (r, r) 
    ) 
elif c == "1000 ML": 
    pack_size = (
     ('1', '1') 
     ('3', '3') 
     ('6', '6') 
     (b, b) 
     (h, h) 
     (d, d) 
     (e, e) 
     (r, r) 
    ) 
elif c == "750 ML": 
    pack_size = (
     ('1', '1') 
     ('3', '3') 
     ('6', '6') 
     (b, b) 
     (h, h) 
     (c, d) 
     (e, e) 
     (r, r) 
    )  
elif c == "375 ML": 
    pack_size = (
     ('3', '3') 
     ('6', '6') 
     ('12', '12') 
     (b, b) 
     (h, h) 
     (d, d) 
     (e, e) 
     (r, r) 
    )   
elif c == "200 ML": 
    pack_size = (
     ('12', '24') 
     ('24', '24') 
     (b, b) 
     (c, c) 
     (c, d) 
     (e, e) 
     (r, r) 
    ) 
else: 
    pack_size = (
     (b, b) 
     (c, c) 
     (c, d) 
     (e, e) 
     (r, r) 
    )   




if request.method == "POST": 
    f = AddToOrderForm(request.POST) 

    if f.is_valid(): 
     z = f.save(commit=False) 
     z.TotalPrice = (float(y)) * (float(g)) 
     z.storeliquorID = a 
     z.orderID = x 

     z.save()   

    return HttpResponseRedirect('/stores/get/%s' % store_id) 

else: 
    f = AddToOrderForm() 
    f.fields['OrderAmount'].choices = pack_size  
args = {} 


args['liquor'] = a 
args['s'] = s 
args['form'] = f 

return render(request,'storeliquor.html', args) 

Models Datei:

class LiquorOrder(models.Model): 

LiquorOrderID = models.AutoField(primary_key=True) 
storeliquorID = models.ForeignKey(StoreLiquor) 
orderID = models.ForeignKey(Order) 
OrderAmount = models.CharField('Order Amount', max_length=3) 
TotalPrice = models.DecimalField('Total Price', max_digits=5, decimal_places=2) 
StorePrice = models.DecimalField('Store Price', max_digits=5, decimal_places=2) 

Datei Forms:

class AddToOrderForm(forms.ModelForm): 

class Meta: 
    model = LiquorOrder 
    fields = ('OrderAmount', 'StorePrice') 
+2

Die Tupel innerhalb 'pack_size' sollten durch Kommas getrennt werden (', ') –

Antwort

35

Sie fehlende Komma (,) dazwischen:

>>> ((1,2) (2,3)) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'tuple' object is not callable 

Put Komma.

>>> ((1,2), (2,3)) 
((1, 2), (2, 3))