对象为lis的Django form

2024-09-25 18:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我在提交后从django表单获取对象时遇到了一个问题。在

我有一个由另一个python包填充的对象列表(用MyObject填充,而不是django模型)。在

models.py中,我有:

class MyObjectForm(forms.Form):

    def __init__(self, *args, **kwargs):
        # Get the list
        myobjects = kwargs.pop('myobjects')
        super(MyObjectForm, self).__init__(*args, **kwargs)
        choices = [(o, o.name) for o in myobjects]
        self.fields["my_objects"] = forms.TypedChoiceField(choices=choices)

有关信息,HTML看起来没问题。在

views.py中,当我单击submit按钮时,form.is_valid()总是{}。有什么问题吗?在

当我改变模型.py有:

^{pr2}$

views.py中,form.is_valid()是{},但我无法取回我的对象MyObject(我得到一个空值)。有可能吗?如果是,我该怎么做?在


Tags: 对象djangopy模型selfforminitargs
1条回答
网友
1楼 · 发布于 2024-09-25 18:24:02

看看你的选择。。。MyObject实例,真的吗?如何将一个MyObject实例作为HTML表单的一部分发送到浏览器,然后通过POST请求体返回到服务器?在

如果您对每个MyObject实例都有一些持久的唯一标识符,请使用该标识符进行选择,即

choices = [(o.some_stable_and_unique_id, o.name) for o in myobjects]

注意,它不能解决你所有的问题。。。然后,您必须将TypedChoiceField子类根据对象的“id”等检索该对象

相关问题 更多 >