Python 谷歌应用引擎ReferenceProperty视图赢得';t发布/保存

Python 谷歌应用引擎ReferenceProperty视图赢得';t发布/保存,python,google-app-engine,referenceproperty,Python,Google App Engine,Referenceproperty,这是我的模型和视图。我是AppEngine的新手,我正在尝试创建一个与profiletitle有关系的新语言集。我已经阅读了大量的文章/文档,但找不到一个好的函数视图代码示例 models.py class AddProfile(db.Model): profiletitle = db.StringProperty(required=True) class AddLang(db.Model): profile = db.ReferenceProperty(AddProfile

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

models.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)
views.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', {})
更新的view.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', {})
create.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>

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

profile = AddProfile.all().filter('profiletitle', self.request.get('profile')).get()
现在,您可以使用该配置文件对象创建AddLang:

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

谢谢你,丹尼尔。我在Stack上读过你的一些帖子。它现在将数据存储在数据存储中,并对视图进行以下更新。我将在上面添加模板代码和一个图像。图像中覆盖配置文件的键是什么?我不确定你在问什么:这正是你想要的,引用的配置文件实体的键。是的,我通读了文档,显然它运行正常。我需要找出查询以按profiletitle对表进行排序。如果密钥不在其中,而条目的实际标题为,则会更简单。示例:前端等。再次感谢您的帮助。这表明您在考虑传统的关系数据库。数据存储不是一个,不应该这样对待。使用数据存储,您不能进行连接,也不能按相关属性的值进行排序。您是对的!我来自django/mysql。无论如何都有办法做到这一点。返回数据存储文档。。。。。。。
lang = AddLang(profile=profile, language=language)
lang.put()