Have everybody call the same return_attrib function

This commit is contained in:
Roberto Rosario
2011-02-07 01:17:01 -04:00
parent 07e2ca0e7f
commit fbd5f0f213
3 changed files with 31 additions and 43 deletions

View File

@@ -1,5 +1,3 @@
import types
from django import forms
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _
@@ -7,22 +5,8 @@ from django.db import models
from django.conf import settings
def return_attrib(obj, attrib, arguments=None):
try:
result = reduce(getattr, attrib.split("."), obj)
if isinstance(result, types.MethodType):
if arguments:
return result(**arguments)
else:
return result()
else:
return result
except Exception, err:
if settings.DEBUG:
return "Attribute error: %s; %s" % (attrib, err)
else:
pass
from common.utils import return_attrib
class DetailSelectMultiple(forms.widgets.SelectMultiple):
def __init__(self, queryset=None, *args, **kwargs):
@@ -76,7 +60,8 @@ class DetailForm(forms.ModelForm):
else:
self.fields[extra_field['field']]=forms.CharField(
label=extra_field['label'],
initial=getattr(self.instance, extra_field['field'], None),
#initial=getattr(self.instance, extra_field['field'], None),
initial=return_attrib(self.instance, extra_field['field'], None),
widget=PlainWidget)
for field_name, field in self.fields.items():