2015-03-23 4 views
0

Я попробовал приложение Reddit, где можно просматривать сообщения и комментарии. Моя проблема заключается в том, чтобы пользователь был единственным, кто мог просматривать сообщения вместо общедоступного (все сообщения, которые видели все) Как это ограничить? Я пробовал:Как ограничить просмотр сообщений только автору

@auth.requires_signature() 
def view_posts_by_author(): 
    ...code 
    return locals() 

, но это не помогает

Rgards

ответ

1

Вы можете закодировать запрос сообщений, так что только возвращает записи авторством текущего вошедшего в систему пользователя. Если предположить, что сообщения таблица включает в author поле, которое является ссылкой на auth_user таблицы, вы могли бы сделать что-то вроде этого:

@auth.requires_login() 
def view_posts_by_author(): 
    posts = db(db.post.author == auth.user_id).select() 
    return dict(posts=posts) 

Это предполагает, что вы есть post стол что-то вроде:

db.define_table('post', 
       Field('author', 'reference auth_user'), 
       ...) 
+0

Что делать, если вас есть несколько полей? db() (db. post. ALL == auth.user_id) не работает – wakamdr

+0

Неясно, каково намерение этого запроса. Если поле 'db.post.author' является ссылочным полем, связанным с таблицей' db.auth_user', то для ограничения набора записей для зарегистрированного пользователя вы просто убедитесь, что 'db.post.author == auth .user_id'. Не имеет смысла приравнивать любое другое поле к значению 'auth.user_id'. – Anthony

+0

Отмечено. Я просто пересматривал свои работы. У меня есть проблемы с ограничениями, но позвольте мне разобраться с ними, прежде чем я приеду за помощью. Все еще изучая web2py, вы знаете – wakamdr

Смежные вопросы