if statement in django

49 views
Skip to first unread message

Anthony Smith

unread,
Apr 5, 2014, 11:08:19 PM4/5/14
to django...@googlegroups.com
Hi

I have a small project and I have been unable to get the following statement to work. Any help would great.User inputs can either self_sale_head which is a $ value,if a $ value is not add a self.estimated_weight_hd is used to get the total weight, the code below should return a estimated_weight_total which can be used for the total sale price. All works when I add the estimated_weight_total manually. I am lost as why.

def calc_estimated_weight_total(self):
    if self.sale_head <= 0:
        amount = (self.number * self.estimated_weight_hd)
        return amount

def save(self):
    self.estimated_total_weight = self.calc_estimated_weight_total()
    super(SaleNote, self).save()



Jay Lozier

unread,
Apr 6, 2014, 1:20:35 AM4/6/14
to django...@googlegroups.com

On 04/05/2014 11:08 PM, Anthony Smith wrote:
> Hi
>
>
>
> I have a small project and I have been unable to get the following
> statement to work. Any help would great.User inputs can either
> self_sale_head which is a $ value,if a $ value is not add a
> self.estimated_weight_hd is used to get the total weight, the code
> below should return a estimated_weight_total which can be used for the
> total sale price. All works when I add the estimated_weight_total
> manually. I am lost as why.
>
> |def calc_estimated_weight_total(self):
> if self.sale_head<= 0:
> amount= (self.number* self.estimated_weight_hd)
> return amount
>
> def save(self):
> self.estimated_total_weight= self.calc_estimated_weight_total()
> super(SaleNote, self).save()|
>
>
>
Anthony,

In your first function, when the if condition evaluates to False it not
return anything.

A possible version is:

def calc_estimated_weight_total(self):
if self.sale_head <= 0:
amount = self.number * self.estimated_weight_hd
else:
amount = 0 # (or your default value or other code to calculate
amount)
return amount

Another version

def calc_estimated_weight_total(self):
amount = 0
if self.sale_head <= 0:
amount = self.number * self.estimated_weight_hd
return amount

Both versions will return a value not matter whether the test condition
evaluates to True or False. The second version assumes the default value
is 0

--
Jay Lozier
jslo...@gmail.com

Anthony Smith

unread,
Apr 6, 2014, 1:57:33 AM4/6/14
to django...@googlegroups.com
thanks now  but getting the following error 

File "/home/tony/Documents/stockapp/stock/models.py" in save
  128.         self.total_price = self.calc_total_price()
File "/home/tony/Documents/stockapp/stock/models.py" in calc_total_price
  124. amount_price = (self.estimated_total_weight * self.sale_kg)

have attached the code if you have time if not dont worry 

    def calc_estimated_total_weight(self):
    amount = 0
    if self.sale_head <= 0:
amount = (self.number * self.estimated_weight_hd)
return amount
    def save(self):
self.estimated_total_weight = self.calc_estimated_total_weight()
super(SaleNote, self).save()

    def calc_total_price(self):
    amount_price = 0
    if self.sale_head > 0:
           amount_price = (self.number * self.sale_head)
           return amount_price
else: 
amount_price = (self.estimated_total_weight * self.sale_kg)
return amount_price          
    
    def save(self):
        self.total_price = self.calc_total_price()
        super(SaleNote, self).save()
     
def __unicode__(self):
            return self.buyer

cheers 

anthony




--
Jay Lozier
jslo...@gmail.com

--
You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/irveWPRuvCY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/5340E423.2070700%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Keith Edmiston

unread,
Apr 6, 2014, 11:05:23 AM4/6/14
to django...@googlegroups.com
It appears that you might have an indentation problem within the else: statement of calc_total_price function.


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.

For more options, visit https://groups.google.com/d/optout.



--
Keith Edmiston
(512)970-7222
Reply all
Reply to author
Forward
0 new messages