我正在玩弄谷歌应用引擎,但在处理 POST 请求时遇到了问题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)
...
感谢您的任何建议。