<type 'exceptions.AttributeError'>: type object 'foo' has no attribute 'bar'

0 views
Skip to first unread message

Ben Burleson

unread,
Feb 6, 2009, 10:38:31 PM2/6/09
to Appengine Admin Users
This is the actual error message I'm getting:

<type 'exceptions.AttributeError'>: type object 'Scheduler' has no
attribute 'e'

Here are my Model Classes:
==============begin model classes==========
class Scheduler(db.Model):
user = db.UserProperty("User", required = True)
# contact/email information
email = db.EmailProperty("E-mail", required = True)

def __str__(self):
return str(self.user.nickname())

class Client(db.Model):
name = db.StringProperty("Name", required = True)
email = db.EmailProperty("E-mail", required = True)

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

class Appointment(db.Model):
date = db.DateTimeProperty("Date", required = True)

## Admin views ##
class AdminScheduler(appengine_admin.ModelAdmin):
model = Scheduler
listFields = ('email')
editFields = ()
readonlyFields = ('email')

class AdminClient(appengine_admin.ModelAdmin):
model = Client
listFields = ('name', 'email')
editFields = ()
readonlyFields = ('name', 'email')

class AdminAppointment(appengine_admin.ModelAdmin):
model = Appointment
listFields = ('date')
editFields = ()
readonlyFields = ('date')

# Register to admin site
appengine_admin.register(AdminScheduler, AdminClient,
AdminAppointment)
===============end model classes==========

So, the odd thing is that nowhere do I have any attribute defined as
'e'. Both AdminAppointment and AdminClient work as expected, but when
I add AdminScheduler in, the error is thrown.

Any ideas??

Thanks for a great Admin interface!
Cheers,
Ben

Valts Mazurs

unread,
Feb 7, 2009, 2:30:45 AM2/7/09
to appengine-...@googlegroups.com
Hello,

listFields, editFields and readonlyFields values should be tuples. To create tuple with single item add comma after the item. If there is no comma Python takes the value as string.

Try code like this:
class AdminScheduler(appengine_admin.ModelAdmin):
 model = Scheduler
 listFields = ('email',)
 editFields = ()
 readonlyFields = ('email',)

Best regards,
--
Valts
Reply all
Reply to author
Forward
0 new messages