Django Admin内联表单集的初始数据未保存

Django Admin内联表单集的初始数据未保存,django,django-forms,django-admin,Django,Django Forms,Django Admin,我正在尝试使用作为查询参数传递的数据预填充Django Admin中的一些内联线(在DB中添加新对象的情况下) 使用此解决方案可以预填充数据,但是在尝试提交时存在一个问题:预填充的内联线没有标记为已更改,因此不会保存 我已经尝试在TestCaseInlineFormSet上重写has_change(),但是这并不能解决问题-似乎从未调用表单集的has_change() 你知道如何解决这个问题吗?我想你不能使用\uuuu init\uuuu因为每次你点击admin时它都会工作。您可以使用预填充的\

我正在尝试使用作为查询参数传递的数据预填充Django Admin中的一些内联线(在DB中添加新对象的情况下)

使用此解决方案可以预填充数据,但是在尝试提交时存在一个问题:预填充的内联线没有标记为已更改,因此不会保存

我已经尝试在TestCaseInlineFormSet上重写has_change(),但是这并不能解决问题-似乎从未调用表单集的has_change()


你知道如何解决这个问题吗?

我想你不能使用
\uuuu init\uuuu
因为每次你点击admin时它都会工作。您可以使用
预填充的\u字段
class TestCaseInlineFormSet(BaseInlineFormSet):
    class Meta:
        model = TestCase
        fields = '__all__'

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

        ids_string = self.request.GET.get('ids')
        if ids_string:
            ids = [int(x) for x in ids_string.split(',')]
            self.initial = [{'test_case': id} for id in ids]


class TestCaseInline(admin.TabularInline):
    model = TestCase
    raw_id_fields = ('test_case',)
    extra = 1
    formset = TestCaseInlineFormSet

    def get_formset(self, request, obj=None, **kwargs):
        formset = super(TestCaseInline, self).get_formset(request, obj, **kwargs)
        formset.request = request
        return formset

    def get_extra(self, request, obj=None, **kwargs):
        extra = super(TestCaseInline, self).get_extra(request, obj, **kwargs)
        requested_extras = len(request.GET.get('ids', '').split(','))
        return max(extra, requested_extras)