我已经按照this url的django-ajax-choices安装指南进行了操作,但仍然没有任何反应:当我在渲染字段中输入内容时,没有显示任何内容,发送POST请求等等。因为这个包是为管理员制作的,所以我必须在管理员外的表格中遗漏一些东西。
我做了以下事情:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'fr',
...
'ajax_select', # pip install django-ajax-selects
)
from ajax_select import register, LookupChannel
from fr.models.generalModels import City
@register('city')
class CityLookup(LookupChannel):
model = City
def get_query(self, q, request):
return self.model.objects.filter(full_name__icontains=q)
def format_item_display(self, item):
return u"<span class='tag'>%s</span>" % item.full_name
class JobOfferForm(forms.ModelForm):
city = AutoCompleteSelectField('city')
class Meta:
model = JobOffer
<script src="{% static 'ajax_select/js/bootstrap.js' %}"></script>
<script src="{% static 'ajax_select/js/ajax_select.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'ajax_select/css/ajax_select.css' %}">
...
<form class="center-align card-panel" enctype="multipart/form-data" id="JobOfferForm" action="" method="POST">
{% csrf_token %}
{{ jobOfferForm.city }}
{{ jobOfferForm.meta }}
</form>
...
我做错了什么?
编辑:看来我错过了bootstrap.js文件和css文件,以及form.meta(但我不确定最后一个文件是否做了什么)。答案 0 :(得分:3)
添加
{{ form.media }}
将解决您的问题。
http://django-ajax-selects.readthedocs.io/en/latest/Outside-of-Admin.html
答案 1 :(得分:0)
我认为您需要定义方法
def format_match(self, obj):
return self.format_item_display(obj)
此方法将管理请求结果。 看看这里:http://django-ajax-selects.readthedocs.org/en/latest/LookupChannel.html#lookups-py
在这里: https://github.com/crucialfelix/django-ajax-selects/blob/master/example/example/lookups.py