django-autocomplete-light外键表单

时间:2016-06-11 19:38:49

标签: django django-autocomplete-light django-modeladmin

我已经按照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):
    .....

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

1 个答案:

答案 0 :(得分:0)

我最终像这样覆盖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