在我的 django 应用程序中,我有一个带有 CenterType 字段(外键)的 CenterModel。我正在使用 django-select2 ModelSelect2Widget 来表示表单中的 CenterType。使用 ModelSelect2Widget 数据不会预渲染到页面上,因此我必须先在搜索框中输入内容,然后才能在 select2 小部件中看到 CenterTypes 名称。由于没有太多的中心类型,有没有办法将所有选项预渲染到页面上,所以我可以看到像这张图片一样的小部件
如您所见,所有选项从一开始就可用。我不需要输入任何内容来查看我希望 Center 类型的小部件看起来那样的选项
class CenterModel(models.Model):
name = models.CharField(verbose_name=_("Nombre"), max_length=50, unique=True,blank=False, null=False)
center_type_id = models.ForeignKey("CenterTypeModel", verbose_name=_("Tipo"),
blank=True, null=True, on_delete=models.SET_NULL,
related_name="centers")
class CenterTypeModel(models.Model):
name = models.CharField(verbose_name=_("Nombre"),unique=True, max_length=50, blank=False, null=False)
description = models.TextField( verbose_name=_("Descripción"),max_length=500, blank=True, null=True) #TODO saber si esto debe ser unico
def __str__(self):
return self.name
from django_select2.forms import ModelSelect2Widget
class CenterForm(forms.ModelForm):
class Meta:
model = CenterModel
exclude = ("id",)
widgets = {
'name':forms.TextInput(attrs={'class': 'form-control'}),
'center_type_id' : ModelSelect2Widget(model=CenterTypeModel, queryset=CenterTypeModel.objects.filter(),
search_fields=['name__icontains'],
attrs={'style': 'width: 100%;'}),