I am new to programming and struggling slightly with all sorts of
things but I'm determined to understand it.
I am trying to take the field value(Decimal) associated with
Fringe.percentage and pass it to Detail.fringe_total where the fringe
id matches self fringe id. I then need to sum it if there is more
than one fringe selected.
I received the above error having changed my code following an earlier
posting. Models and full error message below
Any ideas welcome - also if there are any glaring errors in my
approach or coding it would be great to get the heads up.
MODEL:
class Fringe(models.Model):
code = models.CharField(max_length=3, unique = 'true')
description = models.CharField(max_length=50)
percentage = models.DecimalField(max_digits=6, decimal_places=5,
default=0)
flat_rate = models.IntegerField(blank=True, null=True)
floor = models.IntegerField(blank=True, null=True)
ceiling = models.IntegerField(blank=True, null=True)
total = models.IntegerField(blank=True, null=True)
def __unicode__(self):
return self.code
class Detail(models.Model):
account = models.ForeignKey(Account, related_name= 'account_account')
description = models.TextField(max_length=200)
fringe = models.ManyToManyField(Fringe, blank=True, null=True)
location = models.ForeignKey(Location, blank=True, null=True)
set_code = models.ForeignKey(Set_Group, blank=True, null=True)
flag = models.ManyToManyField(Flag, blank=True, null=True)
quantity = models.IntegerField(blank=True, null=True)
units = models.CharField(max_length=10)
multiplier = models.IntegerField(default=1)
value = models.IntegerField(blank=True, null=True)
native_total = models.IntegerField(blank=True, null=True)
currency_code = models.ForeignKey(Currency)
currency_total = models.IntegerField(blank=True, null=True)
prev_total = models.IntegerField(default = 0)
variance = models.IntegerField(blank=True, null=True)
sort = models.IntegerField()
cash_flow_code = models.ForeignKey(Cashflow, related_name=
'cashflow_code')
cash_flow_start_week = models.IntegerField(blank=True, null=True)
cash_flow_weeks = models.IntegerField(blank=True, null=True)
notes = models.TextField(max_length=200, blank=True, null=True)
fringe_total = models.DecimalField(max_digits=6,
decimal_places=5,blank=True, null=True)
def __unicode__(self):
return self.description
class Meta:
ordering = ['account']
@models.permalink
def get_absolute_url(self):
return('bt4_edit_detail', (), { 'object_id':self.id })
def get_fringe_value(self):
ft =
Fringe.objects.select_related().filter(id__in=self.fringe.all()).values()
if ft.count()==0:
return u'%d'(0)
if ft.count()==1:
qft=ft.get('percentage')
return u'%d'(qft)
if ft.count()>=2:
aqft=ft.aggregate(sum('percentage'))
return u'%d'(aqft)
fringe_value = get_fringe_value
def save(self):
self.native_total = self.quantity*self.multiplier*self.value
self.currency_total =
self.quantity*self.multiplier*self.value*self.currency_code.rate1
self.variance = self.currency_total-self.prev_total
self.fringe_total = self.fringe_value()
super(Detail, self).save()
ERROR:
Environment:
Request Method: POST
Request URL: http://localhost:8000/admin/bt4/detail/1/
Django Version: 1.2.1
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.comments',
'django.contrib.markup',
'mysite.bt4',
'coltrane',
'tagging',
'cab',
'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py"
in get_response
100. response = callback(request,
*callback_args, **callback_kwargs)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/
options.py" in wrapper
239. return self.admin_site.admin_view(view)(*args,
**kwargs)
File "/usr/lib/python2.5/site-packages/django/utils/decorators.py" in
_wrapped_view
76. response = view_func(request, *args,
**kwargs)
File "/usr/lib/python2.5/site-packages/django/views/decorators/
cache.py" in _wrapped_view_func
69. response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py"
in inner
190. return view(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/utils/decorators.py" in
_wrapper
21. return decorator(bound_func)(*args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/utils/decorators.py" in
_wrapped_view
76. response = view_func(request, *args,
**kwargs)
File "/usr/lib/python2.5/site-packages/django/utils/decorators.py" in
bound_func
17. return func(self, *args2, **kwargs2)
File "/usr/lib/python2.5/site-packages/django/db/transaction.py" in
_commit_on_success
299. res = func(*args, **kw)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/
options.py" in change_view
895. self.save_model(request, new_object, form,
change=True)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/
options.py" in save_model
597. obj.save()
File "/home/trevor/1stdjangoproject/mysite/../mysite/bt4/models.py" in
save
146. self.fringe_total = self.fringe_value()
File "/home/trevor/1stdjangoproject/mysite/../mysite/bt4/models.py" in
get_fringe_value
134. return u'%d'(qft)
Exception Type: UnboundLocalError at /admin/bt4/detail/1/
Exception Value: local variable 'qft' referenced before assignment
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
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.