0

我在 django 模型形式中使用 autocomplete_light。

这是我的表格模型

class Ca_dispensaries_item(TimeStampedModel):
  item = models.ForeignKey(Items)
  dispensary = models.ForeignKey(Ca_dispensaries)
  description = models.CharField(max_length=5000, null=True)

这是表格

class CamenuForm(autocomplete_light.ModelForm):
   class Meta:
     model = Ca_dispensaries_item
     exclude = ('dispensary',)
     autocomplete_fields = ('item',)

注册为

autocomplete_light.register(Items, search_fields=('item_name'))

当我尝试在 中输入一些值时item,根据自动完成功能,它会开始搜索,但field error Cannot resolve keyword u'i' into field. Choices are: arizona_dispensaries_item, ca_dispensaries_item, colorado_dispensaries_item, created, id 我不知道这i是从哪里来的。此外,dispensaries_items 是其中的一些模型。whilecreatedid是字段名

4

1 回答 1

0

你忘记了一个逗号!改变

search_fields=('item_name')

search_fields=('item_name',)

search_fields应该是一个可迭代的,所以如果它有值('item_name')(这是一个字符串),它将得到'i','t','e'等(这就是你得到消息的原因Cannot resolve keyword u'i' into field

此外,您的模型名称存在一些严重问题:我看到您有一个名为的模型Items和一个名为Ca_dispensaries_item. 你不应该用复数命名你的模型,所以Items应该是Item,你需要使用 CamelCase 和类名,所以Ca_dispensaries_item应该是 CaDispensariesItem``。

于 2014-12-16T10:56:36.867 回答