首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Python和pyad

Django Python和pyad
EN

Stack Overflow用户
提问于 2018-04-03 22:44:04
回答 1查看 476关注 0票数 0

我正尝试在Django中创建一个简单的搜索表单来查询Active Directory,但我不断收到

代码语言:javascript
复制
com_error at /console/users/
(-2147221008, 'CoInitialize has not been called.', None, None)

views.py:

代码语言:javascript
复制
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

代码语言:javascript
复制
from django import forms

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

Python 3.6。Django 2.0.3 pyad 0.5.20

EN

回答 1

Stack Overflow用户

发布于 2018-12-04 06:44:46

您需要开始和结束线程化过程。参见下面的示例代码:

代码语言:javascript
复制
@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

这应该会让你进入下一步。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49632933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档