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', то вы должны увидеть эти данные на странице подтверждения.
Пожалуйста, не могли бы вы предоставить более подробную информацию о том, чего вы пытаетесь достичь и в чем заключается проблема.