django autocomplete light django 1.8管理员自定义模型表单

django autocomplete light django 1.8管理员自定义模型表单,django,django-autocomplete-light,Django,Django Autocomplete Light,我想为django管理员添加OneToOne字段的自动完成 class Banner(models.Model): product = models.OneToOneField(Product, null=True) class BannerAdmin(admin.ModelAdmin): form = BannerForm 点击-在所有以下步骤后发生任何更改(与“产品”相同的列表小部件…): 我所做的: 安装:D 在已安装的应用程序中添加了“自动完成照明” 重写的admin

我想为django管理员添加OneToOne字段的自动完成

class Banner(models.Model):
    product = models.OneToOneField(Product, null=True)

class BannerAdmin(admin.ModelAdmin):
    form = BannerForm
点击-在所有以下步骤后发生任何更改(与“产品”相同的列表小部件…):

我所做的:

  • 安装:D
  • 在已安装的应用程序中添加了“自动完成照明”
  • 重写的admin/base_site.html(使用自定义加载程序)
  • url(r“^autocomplete/”,包括('autocomplete_light.url'))到url模式
  • 使用模型横幅和搜索字段=['product'],自动完成\u light\u registry.py,
  • 更新的模型格式:
  • 我错过了什么?

    以下内容解决了我的问题:
  • 在安装的应用程序中进行管理之前
  • 自动完成\u light\u registry.py
  • 为表单中的相关字段手动选择自动完成:

  • 仅猜测此字段=['product'、'priority'、'image']可能有问题,请尝试将其删除并检查。@chandu nope未正确配置“禁止创建没有'fields'属性或'exclude'属性的模型表单”
    class BannerForm(autocomplete_light.ModelForm):
        class Meta:
            model = Banner
            fields = ['product', 'priority', 'image']
            autocomplete_fields = ['product']
    
      INSTALLED_APPS = (
        'autocomplete_light',
        'django.contrib.admin',
      )
    
    class BannerAutocomplete(autocomplete_light.AutocompleteModelBase):
        model = Banner
        search_fields = ('name',)  # banner_obj.product.name
        choices = Product.objects.all()
        limit_choices = 20
    
        autocomplete_light.register(
            BannerAutocomplete,
            attrs={
                'placeholder': _(u'имя товара'),
                'data-autocomplete-minimum-characters': 1,
            },
        )
    
    class BannerForm(autocomplete_light.ModelForm):
        class Meta:
            model = Banner
            fields = ['product', 'priority', 'image']
            autocomplete_names = {'product': 'BannerAutocomplete'}