4

我想更改 inlineformset_factory 表单中的默认上传字段(FileField),以使用 django.contrib.admin.widgets 中的 AdminFileWidget。这样做的目的是显示当前上传文件的路径,就像它在管理表单中一样(也许还有另一种方法可以做到这一点?)。

我可以使用自定义表单让小部件正常工作,只是不知道如何在 inlineformset_factory 中更改小部件。

4

1 回答 1

10

这将为您提供 Admin FileField 小部件,而不是带有 5 个额外字段的标准小部件。

视图.py

MySpecialFormset = inlineformset_factory(  MyParentModel, 
                                           MyChildModel, 
                                           form=MyChildModelForm, 
                                           extra=5)

formset = MySpecialFormset(instance=myparentmodelinstance) #add request.POST and request.FILES if used on the POST cycle

表格.py

from django.contrib.admin.widgets import AdminFileWidget

class MyChildModelForm(forms.ModelForm):

    class Meta:
        model = MyChildModel

    def __init__(self, *args, **kwargs):
        super(MyChildModelForm, self).__init__(*args, **kwargs)

        self.fields['my_file_field'].widget = AdminFileWidget() 
于 2010-09-26T20:53:24.390 回答