我想从ModelChoiceField访问选定的项目,类似于以下内容:

表格

class ManageFeedsForms(forms.Form):
    active_feed = forms.ModelChoiceField(queryset=Feed.objects.all(),
                                         empty_label=None,
                                         widget=forms.Select(attrs={'onchange': 'this.form.submit();'}),
    )

    def __init__(self, *args, **kwargs):
        super(ManageFeedsForms, self).__init__(*args, **kwargs)
        self.fields['active_feed'].label = ''

Template.html

                {% for entry in feed_form.active_feed.selected_item.entry_list %}
                    <tr>
                        <td>{{ entry.title }}</td>
                        <td>{{ entry.date }}</td>
                    </tr>
                {% endfor %}

views.py(非常基本,仅用于测试)

def overview(request):
    if request.GET:
        form = ManageFeedsForms(request.GET)
        if form.is_valid():
            pass
        else:
            pass
    else:
        # Empty ManageFeedsForms
        form = ManageFeedsForms()

    return render_to_response('feed_management/home.html',
                              {'header_title': 'Feeds',
                               'feed_form' : form,
                               },
                              context_instance=RequestContext(request))

我正在寻找类似“ .selected_item”的内容,因此我可以访问模型的属性。

谢谢你的帮助!

===============>>#1 票数:5 已采纳

您应该这样修改视图:

def overview(request):
    selection = None
    if request.GET:
        form = ManageFeedsForms(request.GET)
        if form.is_valid():
            selection = form.cleaned_data['active_feed']
    else:
        # Empty ManageFeedsForms
        form = ManageFeedsForms()

    return render_to_response('feed_management/home.html',
                              {'header_title': 'Feeds',
                               'feed_form' : form,
                               'selection' : selection,
                              },
                             context_instance=RequestContext(request))

和您的模板:

{% if selection %}
<tr>
    <td>{{ selection.title }}</td>
    <td>{{ selection.date }}</td>
</tr>
{% endif %}

  ask by Joseph jun. Melettukunnel translate from so

未解决问题?本站智能推荐:

1回复

根据ForeignKey关系过滤Django表单中的ModelChoiceField选项

在我的django项目中,我创建了三个模型类。 “ Subtopic”类与“ Chapter”类具有ForeignKey关系,而“ SAQ”类与“ Chapter”类和“ Subtopic”类具有ForeignKey关系。 我试图使用Django ModelForm为“模型SAQ”创建
2回复

具有Django表单的ModelChoiceField

我坚持使用Django,并且我想了解更多有关此框架的信息。 我读了一些教程(英语和法语教程),而在开始时,我找不到我想要的东西。 我的应用程序目录中有一个forms.py file : 这是我的views.app文件: 1)我想在sexe字段的2个选项之间进行选择。 用
3回复

用于ModelChoiceField的Django表单QuerySet

我有一个表格,正在使用以下字段。 国家模型看起来像这样 “特殊”字段表示该国家为“特殊”。 如果该国家/地区是“特殊”国家/地区,我希望它出现在列表的其余部分之前-我相信您已经在网上看到过其他地方(例如,英语国家(如澳大利亚,英国和美国)位于顶部)选择,但也会与其他国家/地区一
2回复

在Django管理表单中按用户过滤ModelChoiceField

我是Django的新手,并且创建了一个具有以下结构的项目: model.py admin.py 我只想显示分配给特定组的记录。 可以,但是如何创建与admin.py使用的过滤器相同的过滤器,以按Django表单中的用户组过滤选择? 如何传递登录到ModelForm类的实
1回复

Django表单未呈现ModelChoiceField的查询集

我有以下ModelForm: 当我在shell中手动创建表单时(使用manage.py shell) 它返回正确的query_set,但是当我打电话时 我得到了不在query_set中的额外条目? django是否以某种方式缓存html输出? 我查看了源代码,但找不到
1回复

使用ModelChoiceField在Django表单中显示pk以外的其他字段

我正在建立一个网站,用户可以在其中上传文件,也可以将上传内容附加到他们事先创建的项目中。 上载是使用django表单完成的,用户可以在其中指定标题,评论等。还有一个下拉列表,用户可以在其中从他创建的现有项目中进行选择(项目列表取决于用户)。现在,下拉列表仅显示(自动生成的)项目ID,即模型Pr
1回复

如何使用Django表单填充字段

当我从Django表单中选择“引用”字段时如何获得产品名称。
1回复

如何使用测试客户端和post方法使用ModelChoiceField测试Django表单

如何使用Django测试client.post测试具有ModelChoiceField的表单? 传递给post方法的数据字典应如何编写? 我做的方式根本没有选择任何值。 我有一个包含以下字段的表格: 我也有以下测试案例: 这种形式行之有效。 但是,当我使用上述测试用例
1回复

Django表单和ModelChoiceField:将html optgroup元素添加到QuerySet中的特定对象吗?

通过上面的代码,我得到了一个列出所有类别对象的选择框。 我想做的是添加一个 特定类别对象(带有Category.parent == null的对象)的HTML元素。 有谁知道这是怎么做到的吗? 非常感谢! PS:我已经尝试将QuerySet转换为Choices-Set(
4回复

Django ModelChoiceField没有加号按钮

我正在使用自定义用户制作Django应用。 我在下面概述了问题的关键组成部分,缺少的代码用“ ...”表示。 我的自定义用户模型具有外键关系,如下所示: 我编写了一个包含此字段的自定义用户表单,如下所示: 这一切似乎都可以正常工作,但是,位置选择字段右侧没有加号按钮。 我希