What does your view look like?

What happens when there is no post for the course_id?  Does your select 
give a None or an empty Rows? 

It appears that __getattr__ is expecting a body field, and if you don't 
have one ....

(take this as a junior student piping up)

/dps

 Wednesday, March 16, 2016 at 4:27:52 PM UTC-7, Nikhil Rayaprolu wrote:
>
>    # view
>     #show.html
>     {{extend 'layout.html'}}
>     <h1>{{=page.title}}</h1>
>     [ {{=A('edit', _href=URL('edit', args=request.args))}} ]<br />
>     {{=MARKMIN(page.body)}}
>     <h2>Comments</h2>
>     {{for post in comments:}}
>       <p>{{=db.auth_user[post.created_by].first_name}} on 
> {{=post.created_on}}
>          says <i>{{=post.body}}</i></p>
>     {{pass}}
>     <h2>Post a comment</h2>
>     {{=form}}
>     
>     #controller
>     #default.py
>     def user():
>         return dict(form=auth())
>     @auth.requires_login()
>     def index():
>         pages = db().select(db.course.id
> ,db.course.title,db.course.Instructor,orderby=db.course.title)
>         return dict(pages=pages)
>     @auth.requires_login()
>     def createcourse():
>          """creates a new empty wiki page"""
>          form = SQLFORM(db.course).process(next=URL('index'))
>          return dict(form=form)
>     def show():
>          """shows a wiki page"""
>          this_page = db.course(request.args(0,cast=int)) or 
> redirect(URL('index'))
>          db.post.course_id.default = this_page.id
>          form = SQLFORM(db.post).process() if auth.user else None
>          pagecomments = db(db.post.course_id==this_page.id).select()
>          return dict(page=this_page, comments=pagecomments, form=form)
>     
>     #model
>     #db.py
>     db = DAL("sqlite://storage.sqlite")
>     from gluon.tools import Auth
>     auth = Auth(db)
>     auth.define_tables(username=True)
>     db.define_table('course',
>        Field('title', unique=True),
>        Field('Instructor','text', unique=True),
>        Field('Dateofcoursecreation','datetime'),
>                     Field('Courseid'),
>        format = '%(title)s')
>     
>     db.define_table('post',
>         Field('course_id'),
>         Field('body', 'text'),
>         Field('created_on', 'datetime', default=request.now),
>         Field('created_by', 'reference auth_user', default=auth.user_id))
>
> #ticket issued
>
> Error ticket for "courseapp"
> Ticket ID
>
> 127.0.0.1.2016-03-16.20-55-17.d72cc1b2-28ab-4aea-be40-a372034830a5
> <type 'exceptions.AttributeError'>
> Version
> web2py™     Version 2.13.4-stable+timestamp.2015.12.26.04.59.39
> Python     Python 2.7.6: /usr/bin/python (prefix: /usr)
> Traceback
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
>
>     
>
> Traceback (most recent call last):
>   File "/home/nikhil/Downloads/web2py/gluon/restricted.py", line 227, in 
> restricted
>     exec ccode in environment
>   File 
> "/home/nikhil/Downloads/web2py/applications/courseapp/views/default/show.html",
>  
> line 79, in <module>
>   File 
> "/home/nikhil/Downloads/web2py/gluon/packages/dal/pydal/objects.py", line 
> 90, in __getattr__
>     raise AttributeError
> AttributeError
>
> Error snapshot help
>
> <type 'exceptions.AttributeError'>()
>
> inspect attributes
> Frames
>
>     File /home/nikhil/Downloads/web2py/gluon/restricted.py in restricted 
> at line 227 code arguments variables
>
>     File 
> /home/nikhil/Downloads/web2py/applications/courseapp/views/default/show.html 
> in <module> at line 79 code arguments variables
>
>     File /home/nikhil/Downloads/web2py/gluon/packages/dal/pydal/objects.py 
> in __getattr__ at line 90 code arguments variables
>     Function argument list
>
>     (self=<Row {'title': 'maths', 'Dateofcoursecreation': ... 
> 'Instructor': 'indranil chakrabarty', 'id': 1L}>, k='body')
>     Code listing
>
>     85.
>     86.
>     87.
>     88.
>     89.
>     90.
>
>     91.
>     92.
>     93.
>     94.
>
>         
>
>
>         def __getattr__(self, k):
>             try:
>                 return self.__getitem__(k)
>             except KeyError:
>                 raise AttributeError
>
>
>         def __copy__(self):
>             return Row(self)
>
>     Variables
>     builtinAttributeError     <type 'exceptions.AttributeError'>
>
>
> please can any one say me where is the mistake.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to