django-postman + django-ajax-selects 用法

django-postman + django-ajax-selects usage

所以我刚刚开始使用 django-postman==3.2.2,我正在尝试使用 django-ajax-selects==1.3.6 集成自动完成功能,同时使用 django-authtools==1.2.0 来获得自定义用户模型,但运气不好。

settings.py

AJAX_LOOKUP_CHANNELS = {
    'postman_users': dict(model='authtools.user', search_field='email'),
}
POSTMAN_AUTOCOMPLETER_APP = {
    'arg_default': 'postman_users',
}
AUTH_USER_MODEL = 'authtools.User'

我尝试将 model='authtools.user 更改为 model='auth.user 但它不起作用。

urls.py

from ajax_select import urls as ajax_select_urls

url(r'^messages/lookups/',
        include(ajax_select_urls)),
url(r'^messages/', include('postman.urls')),

然后我转到内置的邮递员视图http://localhost:8000/messages/write/,当我填写收件人输入时没有任何反应。

我错过了什么?这难道不应该仅适用于这些设置吗?

作为解决方法,我最终使用了 django-autocomplete-light,我发现它比 django-ajax-selects 更易于使用和理解 然后我创建了自己的扩展表单并传递给写入视图:

class MyCustomWriteForm(BaseWriteForm):
    recipients = autocomplete_light.ChoiceField(
        'UserAutocomplete', label='recipients')

    class Meta(BaseWriteForm.Meta):
        fields = ('recipients', 'subject', 'body')

在我的 urls.py:

url(r'^messages/write/(?:(?P<recipients>[^/#]+)/)?$', WriteView.as_view(form_classes=(MyCustomWriteForm, AnonymousWriteForm)), name='write'),

我认为这是关于它的。