django-autocomplete-light django 1.8 管理员自定义模型
django-autocomplete-light django 1.8 custom modelform for admin
我想将 OneToOne 字段的自动完成功能添加到 django-admin
class Banner(models.Model):
product = models.OneToOneField(Product, null=True)
class BannerAdmin(admin.ModelAdmin):
form = BannerForm
卡在 https://django-autocomplete-light.readthedocs.org/en/stable-2.x.x/tutorial.html?highlight=tutorial#tutorial - 在所有以下步骤后发生任何变化('product' 的相同列表小部件 ...):
我做了什么:
- 已安装 :D
- 已将 'autocomplete_light' 添加到 INSTALLED_APPS
- 已覆盖 admin/base_site.html(使用自定义加载程序)
- url(r'^autocomplete/', include('autocomplete_light.urls')), to urlpatterns
- autocomplete_light_registry.py 模型 Banner 和 search_fields=['product'],
- 更新模型:
class BannerForm(autocomplete_light.ModelForm):
class Meta:
model = Banner
fields = ['product', 'priority', 'image']
autocomplete_fields = ['product']
我错过了什么?
以下解决了我的问题:
- 在 INSTALLED_APPS
的管理员之前
INSTALLED_APPS = (
'autocomplete_light',
'django.contrib.admin',
)
- autocomplete_light_registry.py
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,
},
)
- 手动select自动完成表单中的相关字段:
class BannerForm(autocomplete_light.ModelForm):
class Meta:
model = Banner
fields = ['product', 'priority', 'image']
autocomplete_names = {'product': 'BannerAutocomplete'}
我想将 OneToOne 字段的自动完成功能添加到 django-admin
class Banner(models.Model):
product = models.OneToOneField(Product, null=True)
class BannerAdmin(admin.ModelAdmin):
form = BannerForm
卡在 https://django-autocomplete-light.readthedocs.org/en/stable-2.x.x/tutorial.html?highlight=tutorial#tutorial - 在所有以下步骤后发生任何变化('product' 的相同列表小部件 ...):
我做了什么:
- 已安装 :D
- 已将 'autocomplete_light' 添加到 INSTALLED_APPS
- 已覆盖 admin/base_site.html(使用自定义加载程序)
- url(r'^autocomplete/', include('autocomplete_light.urls')), to urlpatterns
- autocomplete_light_registry.py 模型 Banner 和 search_fields=['product'],
- 更新模型:
class BannerForm(autocomplete_light.ModelForm): class Meta: model = Banner fields = ['product', 'priority', 'image'] autocomplete_fields = ['product']
我错过了什么?
以下解决了我的问题:
- 在 INSTALLED_APPS 的管理员之前
INSTALLED_APPS = ( 'autocomplete_light', 'django.contrib.admin', )
- autocomplete_light_registry.py
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, }, )
- 手动select自动完成表单中的相关字段:
class BannerForm(autocomplete_light.ModelForm): class Meta: model = Banner fields = ['product', 'priority', 'image'] autocomplete_names = {'product': 'BannerAutocomplete'}