Джанго Питон и Пядь

Я пытаюсь создать простую форму поиска в Django для запроса Active Directory, но я продолжаю получать

com_error at /console/users/
(-2147221008, 'CoInitialize has not been called.', None, None)

views.py:

from pyad import pyad, aduser, adquery

@login_required
def users(request):
    if request.method == 'POST':
        form = UserSearchForm(request.POST)
        if form.is_valid():
            user = pyad.from_cn(form.cleaned_data['cn'])
            return render(request, 'console/users/details.html', {'user': user})
    else:
        form = UserSearchForm()

    return render(request, 'console/users/index.html', {'form': form})

forms.py

from django import forms

class UserSearchForm(forms.Form):
    cn = forms.CharField(label='Common Name', max_length=100)

Python 3.6. Джанго 2.0.3 пяд 0.5.20

0 ответов

Вам необходимо запустить и завершить процесс создания потоков. Смотрите пример кода ниже:

@login_required
def users(request):
    import pythoncom   <=== Here
    pythoncom.CoInitialize()   <=== Here
    from pyad import pyad, aduser, adquery 

    if request.method == 'POST':
       form = UserSearchForm(request.POST)
       if form.is_valid():
          user = pyad.from_cn(form.cleaned_data['cn'])
          return render(request, 'console/users/details.html', {'user': user})
    else:
       form = UserSearchForm()

    return render(request, 'console/users/index.html', {'form': form})

    pythoncom.CoUninitialize()    <=== And Here

Это должно привести вас к следующему шагу.

Другие вопросы по тегам