Appengine извлекает данные, связанные с отправкой формы пользователя - PullRequest
1 голос
/ 08 сентября 2010

Я прочитал документы для Appengine, чтобы узнать, как получить данные из моделей.Но я что-то упускаю ..

Мои модели - это пользователь и ученик, где ученик - это ссылочное свойство пользователя.

Логин пользователя, заполните форму с некоторыми значениями и сохраните данные с помощью put().Если вы входите в систему с test@example.com, вы получаете свои данные или если вы входите с другим адресом электронной почты, вы получаете данные, соответствующие вашей информации, отправленной в db.

Все здесь хорошо, пока здесь.Я пытаюсь получить PDF и хочу получить данные от пользователя, вошедшего в систему.

Пример:

class SavePDF(webapp.RequestHandler):
    def post(self):
        user = users.get_current_user()
        if user:
            student= models.Student.all().get()

        p = canvas.Canvas(self.response.out)

        p.drawImage('ipca.jpg', 40, 700)

        p.drawString(50,640, 'Student Info:'  + '%s'  % student.name)   
        p.drawString(50,620, 'Adress:'                 + '%s'  % student.adress)


        p.drawString(50,300, 'PDF updated:%s'  %          str(datetime.date.today()))

        p.showPage()
        self.response.headers['Content-Type'] = 'application/pdf'
        self.response.headers['Content-Disposition'] = 'filename=mypdf.pdf'
        p.save()

Я получаю пользователя, который не является текущим пользователем.Показывает информацию о другом пользователе.Я пробовал разные вещи, но он выдает ошибки.Если я пытаюсь повторить, выдает ошибку.

Я что-то упускаю.

1 Ответ

3 голосов
/ 08 сентября 2010

Если ваша модель ученика выглядит так:

class Student(db.Model):
    user = db.UserProperty()
    name = db.StringProperty()
    address = db.StringProperty()

Тогда вы, вероятно, хотите что-то вроде этого:

user = users.get_current_user() 
if user: 
    student = models.Student.all().filter('user =', user).get() 
...