Django以

时间:2016-10-25 15:28:47

标签: python django

我试图让表单有一个下拉列表,其内容根据用户动态变化。我可以为所有用户提供更改的下拉菜单,但不是针对个人。

我有这样的表格:

forms.py:

class FooForm(ModelForm):

    class Meta:
        model  = Candidate

        fields = (
            'name',
            'foos',
        )

        labels = {
            'name'   :_('Name'),
            'foos'   :_('Chosen Foos'),
        }

        widgets = {
            'name' : TextInput(attrs={'readonly': 'readonly'}),
            'foos' : SelectMultiple(),
        }

models.py:

class UserInfo (models.Model):
    name  = models.CharField(max_length = 256, blank = True, default = None)

    foos  = models.ManyToManyField(Foogroup, blank = True)

如果我按原样使用它,我会得到一个填充了Foogroup所有可能值的下拉列表。

如果我给FooForm一个 init (),我可以将下拉列表设置为一组值,但是这样可以为每个人设置值。

如何动态地将下拉列表的内容设置为User Bob设置的内容,而User Mary只获取为她设置的内容?

我认为这样的事情可能有用:

ajax.py:

def chooseFoos(request):

    if request.method != POST:

        ### 1. do magic to get handle to form's dropdown ###

        ### 2. fill form's dropdown for request.POST['name'] ###

        ### 3. highlight a particular entry in the new dropdown ###

    else:
        ...

我不知道如何在chooseFoos()的步骤1或步骤3中执行这些操作。

我尝试构建一个响应,然后将JSON编码为HttpResponse。这适用于' name',但是因为' foos'而被忽略。

感谢您的帮助。

0 个答案:

没有答案