私はGoogle App Engineを少しいじっていますが、ReferenceProperty
. 次のように、既存のカテゴリからドロップダウン メニューを作成しています。
<select name="mydropdown">
<label for="category">category:</label>
{% for c in cats %}
<option value={{ c.title }} name="category"> {{ c.title }} </option>
{% endfor %}
</select>
フォームにはさらにフィールドがあります。
<div>
<label for="title">Title:</label>
{{ e_form.title }}
</div>
....
{{ e_form }}
この場合、オプション値は の一部である必要があります{{ e_form.category }
。どうすればそのような相互参照を確立できますか? または、私の問題に対する別の良い解決策は何でしょうか?
私のモデルを見てください(これclass CatForm()
は他の場所で使用されています):
class Category(db.Model):
title = db.StringProperty()
slug = db.StringProperty()
description = db.StringProperty(multiline=True)
class CatForm(djangoforms.ModelForm):
class Meta:
model = Category
exclude = ['slug']
class Entry(db.Model):
category = db.ReferenceProperty(Category)
author = db.UserProperty()
title = db.StringProperty(required=True)
slug = db.StringProperty(required=True)
body = db.TextProperty(required=True)
published = db.DateTimeProperty(auto_now_add=True)
updated = db.DateTimeProperty(auto_now=True)
class EntryForm(djangoforms.ModelForm):
class Meta:
model = Entry
exclude = ['published','updated']
このように、POST データでフォーム インスタンスを作成できません。作成できますが、選択したカテゴリが表示されません。
def post(self):
data = EntryForm(data=self.request.POST)
...
アドバイスをありがとう。