在我的 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)