1
我试图使用Django Ajax的选择打包 我有我的form.py:Django ajax选择包不起作用。我错过了什么?
from ajax_select.fields import AutoCompleteSelectField, AutoCompleteSelectMultipleField
from ajax_select import make_ajax_field
class LeaseTenantForm(forms.ModelForm):
class Meta:
model = LeaseTenant
exclude = []
tenant = make_ajax_field(LeaseTenant,'tenant','tenant',help_text="Search for label by name")
#tenant = AutoCompleteSelectField('tenant', required=False, help_text=None)
我有我的lookup.py:
from ajax_select import register, LookupChannel
from client.models import Tenant
@register('tenant')
class TenantLookup(LookupChannel):
model = Tenant
def get_query(self, q, request):
return self.model.objects.filter(last_name=q)
def format_item_display(self, item):
return u"<span class='tag'>%s</span>" % item.last_name
我有我的房客model.py:
class Tenant(CommonInfo):
version = IntegerVersionField()
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField(null=True, blank=True)
phone = models.CharField(max_length=30)
language = models.CharField(max_length=1, default='E',
choices=LANGUAGE_CHOICES)
external_address = models.CharField(max_length=90,null=True, blank=True)
external_zip_code = models.CharField(max_length=50,null=True, blank=True)
external_city = models.CharField(max_length=60,null=True, blank=True)
external_state_province = models.CharField(max_length=30,null=True, blank=True)
external_country = models.CharField(max_length=30,null=True, blank=True)
status = models.CharField(max_length=1, default='N',
choices=TENANT_STATUS_CHOICES,null=True, blank=True)
def __unicode__(self):
return u'%s %i %s %s %s %s %s %s' % ("#", self.id,"first_name", self.first_name, "last_name", self.last_name, "phone", self.phone)
但在我的表单中,我没有得到任何自动完成,没有字段创建。 我错过了什么?
我猜那就是你在get_query过滤器似乎使用的是不存在的字段的事实在Tenant类中。如果不是这样,那么当您加载表单并输入一些文本时,一些诊断(例如请求/响应)会有所帮助。 –
你说得对,这个字段名称是错误的。我复制了错误的版本。但这不是问题。 –
现在你的过滤器是完全匹配的...你不想要其他一些可能的选项(并且想要使用contains或startswith)吗? –