2013-07-15 1 views
0

У меня есть модель кандидатаПолучение одного из полого ключа вместо полного ключа

class Candidate(ndb.Model): 
    name = ndb.StringProperty() 
    phone = ndb.StringProperty() 
    location_name = ndb.StringProperty() 
    state = ndb.KeyProperty(kind=Setting) 

Модель под названием Подача государственного

class SubmissionState(ndb.Model): 
    name = ndb.StringProperty(required=True) 
    description = ndb.TextProperty() 

Модели Установка используется для обработки параметров на основе категории, пользователь выбран. Все это прекрасно.

Адрес views.py. Существует также почтовый метод, но я не уверен, что это необходимо здесь.

class EditSubmission(webapp2.RedirectHandler): 

    def get(self): 
     candidateid = self.request.path.split('/')[-1] 
     candidate = Candidate._get_by_id(int(candidateid)) 
     template_values = {'candidate': candidate, } 
     path = os.path.join(os.path.dirname(__file__), '../templates/edit_submission.html') 
     self.response.write(template.render(path, template_values)) 

здесь шаблон часть:

<tr> 
     <th><label for="id_state">Submission State:</label></th> 
     <td><input id="id_state" type="text" name="state" value="{{ candidate.state.name }}"/></td> 
    </tr> 

Если я {{ candidate.state }} я получить ключ и все поля, но я не могу получить только имя по какой-то причине. Как мне это сделать?

спасибо.

ответ

0

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

state_name = candidate.state.get().name 

Вы можете выполнить, что получить() в обработчике, а затем добавить state_name в ваши ценности шаблона, так что доступно в пределах шаблон.

+0

Спасибо! Это сделало трюк :) –