0

GAE djangoformsの例を、Google App Engineでフォームを送信した後(最新のエントリを更新または追加するときなど)に最新のものに書き換えたい高レプリケーションデータストア。DjangoFormsでエンティティグループと祖先を使用する方法

この記事の主な定期的なクエリは次のとおりです。

我々はに変換されます
query = db.GqlQuery("SELECT * FROM Item ORDER BY name") 

query = Item.all().order('name') // datastore request 

私は後に高い複製データストアからアップデートされた最新のデータを取得したいと思いこのクエリフォームを提出してください(これらの機会に限り、提出後に特定のURLにリダイレクトすることはできますが、これは最新のデータのクエリを使用しています。

data = ItemForm(data=self.request.POST) 
if data.is_valid(): 
    # Save the data, and redirect to the view page 
    entity = data.save(commit=False) 
    entity.added_by = users.get_current_user() 
    entity.put() // datastore request 

と(編集用)のフォームを埋めるためのデータストアから最新のエントリは次のように発生したばかり:

id = int(self.request.get('id')) 
item = Item.get(db.Key.from_path('Item', id)) // datastore request 
data = ItemForm(data=self.request.POST, instance=item) 

それでは、どのように私のよう起こる結果を格納するフォームを検証し

フォーム提出後の最新データを反映するために、これらのデータストアクエリにエンティティグループ/先祖キーを追加します。フォームにデータを入力するとき(編集用)とフォームを送信した後で、すべてのクエリに最新のデータを保存する必要はありません。

実際のコード例を教えてもらえますか?

+0

重複[高レプリケーションデータストアを使用する方法](http://stackoverflow.com/questions/8551605/how-to-use-:あなたput()それ一度
その後、あなたはそのidによってを得ることができます高レプリケーションデータストア) –

+0

@DanielRosemanこれは、他の質問の回答に見られるように、これは重複する質問ではありません(同様ですが、重複しません)。 – reallife

+0

@moguzalpはい、フォームを送信した後、最後に編集/挿入されたデータを表示したいと思います。さらに、データを挿入/編集してフォームを再読み込みするときに、このデータの最新バージョンを事前に入力しておく必要があります。 – reallife

答えて

0

同じブロック内にある場合は、現在のインテンスの参照があります。

if data.is_valid(): 
    entity = data.save(commit=False) 
    entity.added_by = users.get_current_user() 
    entity.put() 
    id= entity.key().id() #this gives you inserted data id 
関連する問題