相关疑难解决方法(0)

Django动态形式 - 即时现场人口?

我整个下午都在浏览Django文档和谷歌搜索结果,而且我仍然在尝试创建一个动态表单.我希望我只需要有人在正确的方向上推动我:-)我刚刚开始学习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)
Run Code Online (Sandbox Code Playgroud)

所以假设我想要一个类似下拉选择字段的东西,填充数据库中每个轮询的问题.我还想要一个文本字段,它显示当前所选轮询的相应选项,只要用户选择不同的池,它就会即时更新.我已经能够通过放置一个按钮并将信息发回表单来解决这个问题.但是,我正在尝试在用户进行选择时自动执行此操作.我的观点目前看起来像这样:

#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(),
    })
Run Code Online (Sandbox Code Playgroud)

我的模板很简单,就像这样

{{ …
Run Code Online (Sandbox Code Playgroud)

django django-forms

19
推荐指数
1
解决办法
2万
查看次数

Django 表单 ChoiceField 依赖于另一个 ChoiceField

我有以下表格:

class MyForm(forms.Form):
    country = forms.ChoiceField(
        widget = forms.Select()
    )

    region = forms.CharField(
        widget = forms.Select()
    )

    def update_region(self):
        self['region'].field.widget.choices = get_choices_for_region(
            self['region'].field.initial)
Run Code Online (Sandbox Code Playgroud)

区域选择取决于国家选择。我有一个 ajax 例程来更新所选国家/地区的区域。我为该区域使用了 CharField,因此它将正确验证。

实际上,我在视图中使用数据预填充表单:

myform['country'].field.initial = 'Switzerland'
myform.update_region()
return ...
Run Code Online (Sandbox Code Playgroud)

问题:有没有办法强制区域选择随着更新国家/地区而自动更新?

python django python-2.7 django-1.6

5
推荐指数
1
解决办法
3007
查看次数

form._raw_value(fieldname)在Django 1.9中使用

我有使用的代码form._raw_value(fieldname)

在Django 1.9中已消失。

有没有办法访问1.9+中的原始值?

更新资料

我只是将代码迁移到Django 1.9。到目前为止,我对那里发生的事情没有更深入的了解。

django deprecated

1
推荐指数
1
解决办法
249
查看次数