我一直试图在几天内解决这个问题几个小时,并且无法让它发挥作用。我到处都是。我会继续尝试解决这个问题,但希望能有更快的解决方案。我正在使用App Engine数据存储区+ Django。
在视图和自定义表单中使用查询,我能够获得表单的列表,但后来我无法发布。我一直试图弄清楚如何动态添加选项作为Django表单的一部分......我尝试了各种方法但没有成功。救命啊!
以下是两种型号。我想获得一个明确的address_id列表,以显示在InfoForm的位置字段中。这些字段可以(也许应该)命名相同,但我认为如果它们的名称不同会更容易。
class Info(db.Model):
user = db.UserProperty()
location = db.StringProperty()
info = db.StringProperty()
created = db.DateTimeProperty(auto_now_add=True)
modified = db.DateTimeProperty(auto_now=True)
class Locations(db.Model):
user = db.UserProperty()
address_id = db.StringProperty()
address = db.StringProperty()
class InfoForm(djangoforms.ModelForm):
info = forms.ChoiceField(choices=INFO_CHOICES)
location = forms.ChoiceField()
class Meta:
model = Info
exclude = ['user','created','modified']
答案 0 :(得分:1)
我不熟悉App Engine数据存储区,但我猜你可能想要沿着这些方向做点什么:
class InfoForm(djangoforms.ModelForm):
def __init__(self, *args, **kwargs):
super(InfoForm, self).__init__(*args, **kwargs)
choices = [(r.id, r.info) for r in Info.objects.filter(...)]
self.fields['info'] = ChoiceField(choices=choices)
通过动态分配info
,您可以从InfoForm
类中排除此行:
info = forms.ChoiceField(choices=INFO_CHOICES)