首页 > 解决方案 > Django-select2 不显示模型数据

问题描述

我已经配置了 django-select2,但是模型中的数据没有显示在字段中。我尝试了许多方法,例如正常形式和模型形式。

我也尝试将该字段初始化为查询,但它仍然无法相应地工作。相同的代码:

表格.py

class PricekeyForm(forms.ModelForm):
    uom = forms.ModelChoiceField(
            queryset=UnitOfMeasurement.objects.all(),
            widget=ModelSelect2Widget(
                model=UnitOfMeasurement,
                search_fields=['unit__icontains']
            )
        )

    class Meta:
        model = Pricekey
        fields = ['uom', 'sales_price', 'return_price', 'damage_return_price',]

    def __init__(self, *args, **kwargs):
        self.fields['uom'].widget.queryset

模型.py

class Pricekey(BaseModel):
    itemcode = models.CharField(max_length=255,null=True,blank=True)
    uom = models.ForeignKey('UnitOfMeasurement',on_delete=models.CASCADE,null=True,blank=True) 
    sales_price = models.FloatField(null=True,blank=True)
    return_price = models.FloatField(null=True,blank=True)
    damage_return_price = models.FloatField(null=True,blank=True)
    expiry_return_price = models.FloatField(null=True,blank=True)

我想要的是,select2 填充了数据库中的数据。请告诉我哪里出错了。我还检查了 django-select2 的文档。请帮我。

标签: djangodjango-formsdjango-select2

解决方案


我只是给出我的建议,因为您的代码不是很详细。

  1. 我希望你unitUnitOfMeasurement模型中有一个字段。

  2. 我认为你的问题在于__init__方法。删除这条线self.fields['uom'].widget.queryset 可能对你有用,因为我看不出有任何理由让它在那里。


推荐阅读