如何从两个模型填充ModelChoiceField

马克西米利安·金瑟弗

在我的表单中,我想用来自两个模型的数据填充ModelChoiceField。

如何更改包含两个不同模型的对象的查询集?

我的方法是将查询集打包在一个列表中。但这似乎不是数据的正确容器。

奥古斯托·德斯特雷罗

我认为您不能将ModelChoiceField与两个不同的模型一起使用,因为您不能拥有由两个不同的模型组成的查询集。

您最好尝试使用ChoiceField,该参数接受带有元组列表的choices参数。

假设您在models.py中有两个模型,如下所示:

from django.db import models

class Model1(models.Model):
    name = models.CharField(max_length=20, primary_key=True)
    description = models.CharField(max_length=200)

class Model2(models.Model):
    name = models.CharField(max_length=20, primary_key=True)
    description = models.CharField(max_length=200)

您可以在forms.py中创建一个这样的表单:

from django import forms

from .models import Model1, Model2

class MultipleModelChoiceForm(forms.Form):
    select = forms.ChoiceField(choices=[])

    def __init__(self, *args, **kwargs):
        super(MultipleModelChoiceForm, self).__init__(*args, **kwargs)
        choices = []
        for obj1 in Model1.objects.all():
            choices.append((obj1.name, obj1.description))
        for obj2 in Model2.objects.all():
            choices.append((obj2.name, obj2.description))
        self.fields['select'].choices = choices

请注意,在表单__init__中定义了选择,以便在创建表单实例时使用Model1Model2中的所有记录更新选择字段

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用两个模型mongoose node.js填充?

来自分类Dev

如何合并两个CNN模型?

来自分类Dev

如何使用matplotlib在两个环之间填充

来自分类Dev

如何填充两个样条线或线之间的区域

来自分类Dev

如何使两个元素都填充父元素(高度)?

来自分类Dev

如何在两个图像之间添加填充

来自分类Dev

如何在xamarin android中填充两个弧

来自分类Dev

如何使用 json 通过 ajax 填充两个 <selects>

来自分类Dev

如何用“NA”填充两个列表之间的差异

来自分类Dev

过滤两个模型

来自分类Dev

链接两个模型

来自分类Dev

如何加入两个分离的数据库python Peewee的两个模型

来自分类Dev

Rails:如何创建属于两个模型的对象

来自分类Dev

Laravel-如何从两个模型中获取数据?

来自分类Dev

如何从两个相关的雄辩模型中显示参数?

来自分类Dev

如何使用Django ORM查询两个传入模型?

来自分类Dev

加入两个模型后如何返回匿名类型

来自分类Dev

如何显示来自两个相关模型的表单集?

来自分类Dev

如何在html模板中连接两个模型?

来自分类Dev

如何在 Laravel 中同时保存两个模型?

来自分类Dev

如何将两个keras模型连接到一个模型中?

来自分类Dev

如何在Jena中将一个RDF模型分离为两个模型?

来自分类Dev

在两个 GPU 上训练两个模型

来自分类Dev

如何使用Swift将两个不同的数组填充到表视图的两个部分中?

来自分类Dev

可能填充两个级别?

来自分类Dev

填充两个矩形之间的空间

来自分类Dev

填充两个功能之间的区域

来自分类Dev

ggplot中的两个填充变量

来自分类Dev

CSS动画两个填充动画