Django-Import-Export Настройка форм импорта администратора

Я хочу добавить дополнительное поле в форму импорта на странице администратора. Я сделал все, как написано в документации, но введенные значения для year и calender_week не отображаются.

resources.py

class ForecastListResource(resources.ModelResource):
    year = fields.Field(column_name="Jahr", attribute="year")
    calender_week = fields.Field(column_name="Kalenderwoche", attribute="calender_week")
    brand = fields.Field(column_name="Marke", attribute="brand")
    material = fields.Field(column_name="Material", attribute="material")
    material_short_text = fields.Field(column_name="Materialkurztext", attribute="material_short_text")
    gmc = fields.Field(column_name="GMC", attribute="gmc")
    gmc_text = fields.Field(column_name="GMC Text", attribute="gmc_text")
    bed_date = fields.Field(column_name="BedTermin", attribute="bed_date")
    bed_amount = fields.Field(column_name="BedMenge", attribute="bed_amount")
    bed_week = fields.Field(column_name="BedWoche", attribute="bed_week")
    code_last_bed_week = fields.Field(column_name="Code letzte KW", attribute="code_last_bed_week")
    fabric_number = fields.Field(column_name="Stoffnummer", attribute="fabric_number")
    print_stage_3 = fields.Field(column_name="Druckstufe 3", attribute="print_stage_3")
    average_filling = fields.Field(column_name="Mittelwert Abfüllung", attribute="average_filling")
    net = fields.Field(column_name="Netto", attribute="net")

    class Meta:
        model = ForeCastList
        use_bulk = True
        skip_unchanged = True

forms.py

class ForecastDoDImportFormMixin(forms.Form):
    calender_week = forms.IntegerField(label="Kalenderwoche", required=True)
    year = forms.IntegerField(label="Jahr", required=True)


class ForecastDoDImportForm(ForecastDoDImportFormMixin, ImportForm):
    pass


class ForecastDoDConfirmImportForm(ForecastDoDImportFormMixin, ConfirmImportForm):
    pass

admin.py

@admin.register(ForeCastList)
class ForeCastList(ImportExportModelAdmin):
    resource_class = ForecastListResource

    def get_import_form(self):
        return ForecastDoDImportForm

    def get_confirm_import_form(self):
        return ForecastDoDConfirmImportForm

    def get_form_kwargs(self, form, *args, **kwargs):
        if isinstance(form, ForecastDoDImportForm):
            if form.is_valid():
                kwargs.update({"calender_week": form.cleaned_data["calender_week"], "year": form.cleaned_data["year"]})
        return kwargs

    def get_import_data_kwargs(self, request, *args, **kwargs):
        print(kwargs)
        return super().get_import_data_kwargs(request, *args, **kwargs)

Импорт-Форма

Результат

-> соответствующая часть из документов: https://django-import-export.readthedocs.io/en/latest/getting_started.html#customize-admin-import-forms

Пожалуйста, уточните, в чем заключается проблема. Я предполагаю, что вы добавили эти поля, чтобы можно было фильтровать данные на этапе импорта. Это правильно?

Я вижу, что вы добавили два новых поля в форму импорта. Пример в документации показывает, как добавить поле. На самом деле он не добавляет никакой дополнительной функциональности (например, фильтрации по выбранному значению), которая зависит от вас. Я согласен, что документация не очень ясна по этому поводу.

Вы, вероятно, сможете добиться прогресса, если скачаете и установите пример приложения, а затем пройдете через него с помощью отладчика.

Кстати, я ожидал, что если у вас есть файл импорта с заголовком 'Kalenderwoche', то вы должны увидеть эти данные на странице подтверждения.

Пожалуйста, не могли бы вы предоставить более подробную информацию о том, чего вы пытаетесь достичь и в чем заключается проблема.

Вернуться на верх