Django 1.11管理表单将搜索框添加到oneToOne字段

时间:2017-08-22 04:10:42

标签: django python-3.x django-admin django-1.11

我有一个用户,管理员和员工模型,员工和管理员都与具有oneToOne字段的用户模型相关我想要做的是在管理员表单中我有一个字段" user"

而不是所有用户都有一个下拉字段我希望有一个搜索框,以便当我搜索特定用户时,我找到他并选择他作为管理员。

怎么样?
我还尝试将用户的字段添加到管理员的表单中,但我不能 我尝试了内联的东西,管理员模型中的parent_link ......但我找不到解决方案
现在,我想通过在字段中添加搜索框来最小化搜索长用户列表

2 个答案:

答案 0 :(得分:1)

我使用django-ajax-selects包解决了这类问题。希望这会帮助你。

应用/ admin.py:

from ajax_select import register, LookupChannel

@register('users')
class UsersLookup(LookupChannel):

    model = User

    def get_query(self, q, request):
          return self.model.objects.filter(username__icontains=q)

class EmployeeAdminForm(forms.ModelForm):
    user = AutoCompleteSelectField('users', required=False, 
                                  help_text=None)

    class Meta:
         model = Employee
         fields = '__all__'

<强> settings.py

AJAX_LOOKUP_CHANNELS = {
    'users'  : {'model': 'auth.user', 'search_field': 'username'},
}

答案 1 :(得分:0)

使用django&#39; s raw_id_fields。通过它,您可以声明可搜索的外键对象。