I have just checked a side project that I did today, and noticed that
I wasnt able to see the pic either. I have been able to fix it using
the upload field:
|form = SQLFORM(db.person, record, upload=URL('download'))|
I simply added that : upload=URL('download') to my SQLFORM() syntax
and it worked. But I dont think it will work on create, just on
updates (because you wont able to see the pic until is submitted, so
it wouldnt be possible to see it on create).
Give it a try
El martes, 18 de agosto de 2015, 17:47:43 (UTC+2), Carlos Cesar
Caballero escribió:
Hi, I am creatig a blog app and I am having a problem with the
grid, when I create or update a post, the post image is never
visible in the form (the form show that there is no image), but
everything is ok in the db, I supouse that is something related
with the code for tagging, there is my view code:
{{
if'edit'inrequest.argsor'new'inrequest.args:
value =','.join(tags)
tags_field = DIV(LABEL(T('Tags')+':', _class='control-label
col-sm-3'), DIV(INPUT(_name='tags',value=value, _class='form-control string'),
_class='col-sm-9'), _class='form-group')
grid[0].insert(-1, tags_field)
pass
}}
{{=grid}}
and my controller:
defposts():
db.post.created_by.readable =True
db.post.created_on.readable =True
db.post.modified_by.readable =True
db.post.modified_on.readable =True
posts_query = (db.post.created_by == auth.user_id)
create_post =False
ifauth.has_membership('admin')orauth.has_membership('editor'):
posts_query = db.post
ifauth.has_membership('admin')orauth.has_membership('editor')orauth.has_membership('author'):
create_post =True
grid = SQLFORM.grid(posts_query,orderby=~db.post.created_on,
fields=[db.post.lang,db.post.title,db.post.published,db.post.created_on],
paginate=10,create=create_post,)
ifrequest.args(0)in['edit']:
db.post.created_on.readable =True
post = db.post(request.args(2))
form = SQLFORM(db.post,post)
ifform.process().accepted:
new_tags = [tag.strip()fortaginrequest.vars.tags.split(',')]
post.update_tags(new_tags)
response.flash = T("Post Updated")
returndict(grid=form,tags=post.tags)
ifrequest.args(0)in['new']:
form = SQLFORM.factory(db.post)
post_tags = []
ifform.process().accepted:
post_id = db.post.insert(**db.post._filter_fields(form.vars))
post = db(db.post.id <http://db.post.id> ==
post_id).select().first()
new_tags = [tag.strip()fortaginrequest.vars.tags.split(',')]
post.update_tags(new_tags)
post_tags = post.tags
redirect(URL('dashboard','posts'))
returndict(grid=form,tags=post_tags)
returndict(grid=grid)
and the model:
"""
Post model file
"""
"""
Table definition
"""
importre
db.define_table('post',
Field('lang',label=T('Language')),
Field('title',unique=True,label=T('Title')),
Field('url',unique=True,label=T('URL')),
Field('abstract','text',label=T('Abstract')),
Field('body','text',widget=ckeditor.widget,label=T('Body')),
Field('image','upload',autodelete=True,label=T('Image')),
Field('published','boolean',default=True,label=T('Published')),
Field('show_title','boolean',default=True,label=T('Show
title')),
Field('show_comments','boolean',default=True,label=T('Show
comments')),
Field('close_comments','boolean',default=False,label=T('Close comments')),
Field('show_tags','boolean',default=True,label=T('Show
tags')),
auth.signature,
)
# post image thumbnails
thumb.create(db.post.image,(175,175),use_imageops=True)
# Make table sercheable
search.create(db.post.body)
"""
Virtual and method fields
"""
# get post tags objects
db.post.get_post_tags = Field.Method(lambdarow: [post_tagforpost_tag
indb(db.post_tags.post_id ==row.post.id
<http://row.post.id>).select()])
# virtual field for post tags
db.post.tags = Field.Virtual(lambdarow: [post_tag.tag_id.name
<http://post_tag.tag_id.name> forpost_tag
indb(db.post_tags.post_id ==row.post.id
<http://row.post.id>).select()])
# update post tags
def_(row,new_tags):
self = row.post
db(db.post_tags.post_id ==self.id <http://self.id>).delete()
fortaginnew_tags:
iftag:
if notdb((db.tags.name <http://db.tags.name> == tag) &
(db.tags.lang == self.lang)).select():
db.tags.insert(name=tag,lang=self.lang)
tag_id = db((db.tags.name <http://db.tags.name> == tag) &
(db.tags.lang == self.lang)).select().first().id
db.post_tags.insert(post_id=self.id
<http://self.id>,tag_id=tag_id)
db.commit()
db.post.update_tags = Field.Method(_)
# get post comments
db.post.get_comments = Field.Method(lambdarow:
db((db.comments.post_id ==row.post.id
<http://row.post.id>)).select())
"""
Functions
"""
# get post by id
defget_post_by_id(post_id):
returndb(db.post.id <http://db.post.id> == post_id).select().first()
# get posts by lang
defget_posts_by_lang(actual_lang=T.accepted_language):
returndb((db.post.lang == actual_lang) & (db.post.published
==True)).select(orderby=~db.post.created_on)
# get post by URL
defget_post_by_url(post_url):
returndb((db.post.url == post_url)).select()
# get posts for pagination
defget_posts_per_page_and_lang(page=0,items_per_page=5,actual_lang=T.accepted_language):
page =0if notpageelsepage
limit_by = (page*items_per_page,(page+1)*items_per_page+1)
rows = db((db.post.lang == actual_lang) & (db.post.published
==True)).select(db.post.ALL,limitby=limit_by,orderby=~db.post.created_on)
returndict(rows=rows,page=page,items_per_page=items_per_page)
# get posts by author
defget_posts_by_author(author_id,lang=None):
if notlang:
query = (db.post.created_by == author_id)
else:
query = ((db.post.created_by == author_id) & (db.post.lang ==
lang))
returndb(query).select()
"""
Validations
"""
db.post.lang.requires = IS_IN_SET(lang_set)
db.post.title.requires = [IS_NOT_EMPTY(),IS_NOT_IN_DB(db,db.post.title)]
db.post.url.requires =
[IS_NOT_EMPTY(),IS_SLUG(),IS_NOT_IN_DB(db,db.post.url)]
db.post.abstract.requires = IS_NOT_EMPTY()
db.post.body.requires = IS_NOT_EMPTY()
db.post.published.requires = IS_NOT_EMPTY()
db.post.is_active.writable = db.post.is_active.readable =False
db.post.created_on.writable = db.post.created_on.readable =False
db.post.created_by.writable = db.post.created_by.readable =False
db.post.modified_on.writable = db.post.modified_on.readable =False
db.post.modified_by.writable = db.post.modified_by.readable =False
I can't find the problem, but maybe someone have resolved the same
issue, or can see something in the code that I not.
--
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]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.