django - Django动态表单-实时字段填充?

标签 django django-forms

整个下午,我一直在浏览Django文档和Google搜索结果,但在尝试创建动态表单时仍然有些困难。我希望我只需要一个人来朝着正确的方向 push 我:-)我才刚刚开始学习Django,所以我仍然还是一个初学者。但是,我已经是python中级用户。

我要做的是创建一个动态表单,用户可以从下拉菜单中进行选择,然后基于该选择,表单的另一部分将自动更新以显示与当前所选项目相关的结果,但是从另一个数据库表。

我将尝试使用Django教程中模型的简化版本,以更好地说明我正在尝试做的事情:

# models.py
from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)

因此,可以说我想要一个类似下拉选择字段的字段,其中填充了数据库中每个轮询的问题。我还希望有一个文本字段,该文本字段显示当前所选民意测验的相应选项,每当用户选择其他池时,该字段就会即时更新。我已经能够解决这个问题,方法是放置一个按钮,然后将信息发布回表单。但是,随着用户做出选择,我正在尝试自动执行此操作。我的 View 目前看起来像这样:
#view.py
from django import forms
from django.shortcuts import render_to_response

from myapp.models import Poll,Choice

class MyModelChoiceField(forms.ModelChoiceField):
    def label_from_instance(self, obj):
        return "%s" % obj.question

class PollSelectionForm(forms.Form):
    polls = MyModelChoiceField( queryset=Poll.objects.all() )

class ChoiceResults(forms.Form):
    def __init__(self, newid, *args, **kwargs):
        super(ChoiceResults, self).__init__(*args, **kwargs)

        self.fields['choice'] = forms.TextField( initial="" )

def main(request):
    return render_to_response("myapp/index.html", {
        "object": PollSelectionForm(), 
        "object2": ChoiceResults(),
    })

我的模板非常简单,就像
{{ object }}
{{ object2 }}

我确定创建表单的方式可能也不是最好的,所以也可以批评一下:-)正如我提到的,我已经阅读了涉及重新发布表单的解决方案,但是我想要这个即时发生...如果我可以透明地重新发布,那很好。我还看到了可以让您动态创建表单的库,但这似乎有点过头了。

最佳答案

这是一种方法-Django/jQuery Cascading Select Boxes?

您可以创建一个仅将json呈现为字符串的新 View ,
然后,当您从第一个列表中选择完成时触发一个事件,该列表从该json动态加载数据。

关于django - Django动态表单-实时字段填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8998428/

相关文章:

django - 在 HTML 按钮上调用 django 函数

python - 你如何在 Django 中为表单编写保存方法?

python - 有没有一种简单的方法可以更改 Django 表单的日期时间输入字段的格式?

python - Django override_settings 不适用于运行多个测试

javascript - 我们应该使用哪种 Stack-Overflow 风格的 Markdown (WMD) JavaScript 编辑器?

django - Django 中未通过 .add() 方法添加的多对多关系条目

python - 反转 'about',没有找到参数

Python:字典中的元素顺序

python - Django View 类: name 'self' is not defined

javascript - 如何在编辑内容并将javascript变量传递给新输入的字段后将Django "forms.ModelForm"保存在数据库中