簡體   English   中英

Google App Engine ReferenceProperty視圖將不會發布/保存

[英]Google app engine ReferenceProperty view won't post/save

這是我的模型和觀點。 我是App Engine的新手,我正在嘗試創建一種與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>

當我嘗試發布/保存數據時,出現以下錯誤。 我相信這是由於我需要使用get來調用在模板中選擇的個人資料標題的特定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'

確切顯示您在POST中發送的內容將很有幫助。 但是假設您要發送個人資料標題,則需要獲取它:

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

現在,您可以使用該配置文件對象創建您的AddLang:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM