1

我已按照 django-autocomplete-light http://django-autocomplete-light.readthedocs.io/en/master/tutorial.html的教程进行操作, 但我有以下问题。

我有一个模型

class Order(models.Model):
    client = models.ForeignKey(Client)
    product = ....

如果我按照教程中的说明创建表单

class OrderForm(forms.ModelForm):
    class Meta:
        model = Order
        fields = ('__all__')
        widgets = {
            'client': autocomplete.ModelSelect2(url='ordersapp:client-autocomplete')
    }

并在 admin.py

class OrderAdmin(admin.ModelAdmin):
    form = OrderForm

我得到了想要的结果,这是为提交的客户自动完成的。

但是,如果我不想创建表单并改用

class OrderAdmin(admin.ModelAdmin):
    .....

有没有办法让客户端字段的自动完成小部件?我很感激任何帮助。

4

1 回答 1

1

我最终像这样覆盖了 get_form 并且它起作用了

def get_form(self, request, obj=None, **kwargs):
    form = super(OrderAdmin, self).get_form(request, obj, **kwargs)
    form.base_fields['client'].widget = autocomplete.ModelSelect2(url='ordersapp:client-autocomplete')
    return form
于 2016-06-15T21:46:22.407 回答