Derek,
Ok...I made the change and I'm now getting the error:

TypeError at /rugs/cart/1/4/
unsupported operand type(s) for +: 'int' and 'Price'

Is 'a['choice'].price' not an Int?  It says it is in my model file.

////////////////////////////////////

Here is my view

def showcart(request, style_id, choice_id):
        s = Style.objects.get(id=style_id)
        c = Choice.objects.get(id=choice_id)
        #x = c.size, " ", c.price
        cart = request.session.get('cart', [])
        cart.append({'style': s, 'choice': c})
        request.session['cart'] = cart
        pr = 0
        for a in cart:
                pr = pr + a['choice'].price
        return render_to_response('show_test.html', {'mychoice': cart, 'p':
pr})


/////////////////

Here is my template file:

{% extends "rug_leftnav.html" %}
{% block body %}
{% for a in mychoice %}
{{ a.style.manufacturer }} - {{ a.style.collection }} - {{ a.style }}
- {{ a.choice.size }} - ${{ a.choice.price }}.00
<br>
{% endfor %}
{{ p }}
{% endblock %}

//////////////

Here are some of my model classes:

class Size(models.Model):
        name = models.CharField(maxlength=100)

        def __str__(self,):
                return self.name

        class Admin:
                pass

class Price(models.Model):
        name = models.IntegerField()

        def __str__(self,):
                return str(self.name)

        class Admin:
                pass


class Choice(models.Model):
    choice = models.ForeignKey(Collection, edit_inline=models.TABULAR,
num_in_admin=5)
    size = models.ForeignKey(Size, core=True)
    price = models.ForeignKey(Price, core=True)
    def __str__(self,):
        return str((self.size, self.price))

class Style(models.Model):
    name = models.CharField(maxlength=200)
    color = models.CharField(maxlength=100)
    image = models.ImageField(upload_to='site_media/')
    theslug = models.SlugField(prepopulate_from=('name',))
    manufacturer = models.ForeignKey(Manufacturer)
    collection = models.ForeignKey(Collection)
    sandp = models.ManyToManyField(Choice)

    class Admin:
        search_fields = ['name']
        list_filter = ('collection',)
        list_display = ('name', 'theslug','collection', 'rmanu')

        js = (
                '/site_media/ajax_yahoo.js',
            )

    def __str__(self,):
        return self.name

    def rmanu(self):
        return self.collection.manufacturer


//////////////////////


Thanks for your help Derek


On Jul 19, 4:46 pm, Derek Anderson <[EMAIL PROTECTED]> wrote:
> you were supposed to substitute "value" with whatever column you have
> defined.  (you didn't post your model def)
>
> Greg wrote:
> > Derek,
> > I tried that and now I get the following error:
>
> > AttributeError at /rugs/cart/1/4/
> > 'Choice' object has no attribute 'value'
>
> > /////////////
>
> > Here is my view
>
> > def showcart(request, style_id, choice_id):
> >    s = Style.objects.get(id=style_id)
> >    c = Choice.objects.get(id=choice_id)
> >    #x = c.size, " ", c.price
> >    cart = request.session.get('cart', [])
> >    cart.append({'style': s, 'choice': c})
> >    request.session['cart'] = cart
> >    pr = 0
> >    for a in cart:
> >            pr = pr + a['choice'].value
> >    return render_to_response('show_test.html', {'mychoice': cart, 'p':
> > pr})
>
> > /////////
>
> > On Jul 19, 4:22 pm, Derek Anderson <[EMAIL PROTECTED]> wrote:
> >> you're not adding two ints, you're adding an int to an instance of your
> >> Choice class.  make your line:
>
> >>               pr = pr + a['choice'].value
>
> >> or whatever you called it.
>
> >> Greg wrote:
> >>> Hello,
> >>> I have the following view
> >>> def showcart(request, style_id, choice_id):
> >>>    s = Style.objects.get(id=style_id)
> >>>    c = Choice.objects.get(id=choice_id)
> >>>    cart = request.session.get('cart', [])
> >>>    cart.append({'style': s, 'choice': c})
> >>>    request.session['cart'] = cart
> >>>         pr = 0
> >>>    for a in cart:
> >>>             pr = pr + a['choice']
> >>>         return render_to_response('show_test.html', {'mychoice': cart,
> >>> 'p': pr})
> >>> /////////
> >>> Whenever i try this I get the error:
> >>> TypeError at /rugs/cart/1/4/
> >>> unsupported operand type(s) for +: 'int' and 'Choice'
> >>> //////////////////////////
> >>> Anybody know how I pull a value out of a dict and add it to a existing
> >>> number?
> >>> Thanks


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to