标签: django-select2

ModelForm 和 ModelSelect2Widget (django-select2)

我有一个 ModelForm,其中包含 django-select2 中的 ModelSelect2Widget

\n\n

https://github.com/applegrew/django-select2

\n\n

遵循此处的文档:

\n\n

https://django-select2.readthedocs.io/en/latest/django_select2.html#django_select2.forms.ModelSelect2Widget

\n\n

表格.py

\n\n
class RentalForm(forms.ModelForm):\n\n\n    name = forms.ChoiceField(\n            widget=ModelSelect2Widget(\n                model=ldap_data,\n                search_fields=[\'user__icontains\']\n            )\n        )\n    date_start = forms.CharField(label="Datum Ausleihe", help_text="", widget=forms.TextInput(attrs={\'class\': \'form-control form-control-sm\', \'placeholder\': \'01.01.2019\' }))\n    date_end = forms.CharField(label="Datum R\xc3\xbcckgabe", help_text="", widget=forms.TextInput(attrs={\'class\': \'form-control form-control-sm\', \'placeholder\': \'01.01.2019\' }))\n\n    class Meta:\n        model = Rental\n        fields = [\'device\', \'name\', \'date_start\', \'date_end\',]\n
Run Code Online (Sandbox Code Playgroud)\n\n

模型.py

\n\n
class ldap_data(models.Model):\n    user = models.CharField(max_length=1024)\n\n    def __str__(self):\n        return self.user\n
Run Code Online (Sandbox Code Playgroud)\n\n

ldap_data 包含大约 100 个条目。

\n\n

在我看来,一切看起来都很好,但在渲染的模板中,下拉列表中没有可用的数据name

\n\n

Google …

python django django-forms django-select2

3
推荐指数
1
解决办法
5054
查看次数

如何在 django 管理站点中使用 django-select2 小部件?

在我的 django 应用程序中,我修改了 User 实体以包含工作字段 (OneToOneField)。但是从 django 管理站点来看,该字段会产生如此多的结果,因此登录用户很难选择工作人员。有没有办法使用 django 管理站点中的 select2 (ModelSelect2Widget) 小部件?对于任何常规表单,我都按以下方式定义小部件:

from django_select2.forms import ModelSelect2Widget
    class ProcessForm(forms.ModelForm):
        class Meta:
            model = ProcessModel
            exclude = ('id',)
    
            widgets = {
                'name':forms.TextInput(attrs={'class': 'form-control'}),
                'code':forms.TextInput(attrs={'class': 'form-control'}),
                'description':forms.Textarea(attrs={'class': 'form-control'}),
                'geom': LeafletWidget(),
                'product': ModelSelect2Widget(model=ProductModel, queryset=ProductModel.objects.filter(),
                                                search_fields=['name__icontains'],
                                                attrs={'style': 'width: 100%;'}), 
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法在管理站点表单中使用 ModelSelect2Widget 作为工作人员字段?这是我的代码:

class User(AbstractUser):
    worker = models.OneToOneField(WorkerModel, on_delete=models.CASCADE, 
                related_name="user", verbose_name=_("Trabajador"), null=True, blank=True)

    
    class Meta:
        default_permissions = ()
        verbose_name="Usuario"
        verbose_name_plural="Usuarios"
        permissions = (
            ("secretario", "Secretario(a)"),
            ("director", "Director"),
        
        )
from django.contrib.auth.admin import UserAdmin

class UserAdminInherited(UserAdmin): …
Run Code Online (Sandbox Code Playgroud)

python django django-admin jquery-select2 django-select2

3
推荐指数
1
解决办法
4979
查看次数