我有一个候选人模型
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 :(得分:0)
candidate.state只是指向SubmissionState的键。您的应用需要向数据存储区发出另一个请求以获取SubmissionState实体,如下所示:
state_name = candidate.state.get().name
您可以在处理程序中执行get(),然后将state_name添加到模板值中,以便在模板中可用。