Django: using ForeignKeyRawIdWidget outside of admin forms

后端 未结 2 1064
情话喂你
情话喂你 2020-12-09 20:55

I\'m trying to find some documentation of how to use the ForeignKeyRawIdWidget in my own forms. Currently I keep getting the error, \"init() takes at least

2条回答
  •  被撕碎了的回忆
    2020-12-09 21:37

    As of the Django 1.5, this works to reuse the ForeignKeyRawIdWidget in non-admin forms.

    from django.contrib.admin.sites import site
    
    class InvoiceForm(ModelForm):
        class Meta:
            model = Invoice
            widgets = {
                'customer': ForeignKeyRawIdWidget(Invoice._meta.get_field('customer').rel, site),
            }
    

    Update

    Django 2.0 is deprecating field.rel in favor of field.remote_field. You might want to use this instead (also works on Django 1.11):

    ...
    ForeignKeyRawIdWidget(Invoice._meta.get_field('customer').remote_field, site),
    ...
    

提交回复
热议问题