Google app engine ReferenceProperty视图不会发布/s

2024-09-30 03:25:59 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的模型和视图。我是appengine的新手,我正在尝试创建一个与profiletitle有关系的新语言集。我已经阅读了大量的文章/文档,但找不到一个函数视图代码的好例子。你知道吗

你知道吗型号.py你知道吗

class AddProfile(db.Model):
    profiletitle = db.StringProperty(required=True)


class AddLang(db.Model):
    profile = db.ReferenceProperty(AddProfile, required=True)
    language = db.StringListProperty()
    date = db.DateTimeProperty(auto_now_add=True)

你知道吗视图.py你知道吗

class CreateLang(BaseHandler):

    def post(self):
        n = AddLang(
        profile = self.request.get('profile'),
        language = self.request.get('language').split(', '))
        n.put()
        return webapp2.redirect('/')

    def get(self):
        self.render_template('create.html', {})

更新视图.py-现在它将数据存储在数据存储中

class CreateLang(BaseHandler):

    def post(self):
        n = AddLang(
        profile = AddProfile.all().filter('profiletitle', self.request.get('profile')).get(),
        language = self.request.get('language').split(', '))
        n.put()
        return webapp2.redirect('/')

    def get(self):
        self.render_template('create.html', {})

你知道吗创建.html你知道吗

<!DOCTYPE html>

<html>
<body>
<form action="" method="post">
  <div class="field-wrapper">

    <div class="field-label">
      <label for="id_profile">Profile</label>:
    </div>

    <div class="field-field">
      <input type="text" name="profile" id="id_profile" />

    </div>

 </div>

  <div class="field-wrapper">

    <div class="field-label">
      <label for="id_language">Language</label>:
    </div>

    <div class="field-field">
      <input type="text" name="language" id="id_language" />

    </div>

</div>
  <br>
  <input type="submit" value=submit />
</form>

当我试图发布/保存数据时,我收到以下错误。我相信这是因为我需要使用get来调用模板中所选profiletitle的特定id。你知道吗

注意:我没有使用表单py,我有一个简单的html模板。如果您有任何问题或需要查看模板,请告诉我。谢谢你的阅读/帮助。你知道吗

     ![datastore snip]:(http://imm.io/1hTVN)

 Error Message
     if value is not None and not value.has_key():

 AttributeError: 'unicode' object has no attribute 'has_key'

Tags: pyselfdiv视图idfielddbget
1条回答
网友
1楼 · 发布于 2024-09-30 03:25:59

如果能准确地显示你在邮件中发送的内容,那会很有帮助。但假设您发送的是个人资料标题,您确实需要:

profile = AddProfile.all().filter('profiletitle', self.request.get('profile')).get()

现在可以使用该profile对象创建AddLang:

lang = AddLang(profile=profile, language=language)
lang.put()

相关问题 更多 >

    热门问题