Django-import-export, использование виджета внешнего ключа
Похоже, у меня возникли некоторые проблемы при попытке понять, как использовать ForeignKeyWidget в пакете django-import-export. Я надеюсь, что кто-нибудь здесь сможет указать, что не так в моем коде. Я могу экспортировать нужные мне данные, за исключением актива. Я хотел бы, чтобы это было название актива, но он экспортирует ID.
Вот мои модели
from django.db import models
from datetime import datetime
class asset(models.Model):
name = models.CharField(max_length=8)
def __str__(self):
return f"{self.id} {self.name}"
class report(models.Model):
machine = models.ForeignKey(asset, on_delete=models.CASCADE)
last_active = models.DateField()
return_code = models.CharField(max_length=16, blank=True)
comment = models.CharField(max_length=256, blank=True)
status = models.CharField(max_length=256, blank=True)
@property
def since(self):
return (datetime.now().date() - self.last_active).days
def __str__(self):
return f"{self.machine} {self.last_active} {self.return_code} {self.comment} {self.status}"
Вот мой admin.py
from django.contrib import admin
from django.contrib.admin import DateFieldListFilter
from import_export.admin import ImportExportModelAdmin
from import_export import fields, resources
from import_export.widgets import ForeignKeyWidget
from .models import asset, report
class reportResource(resources.ModelResource):
machine = fields.Field(
column_name='machine',
attribute='machine',
widget=ForeignKeyWidget(asset, 'name'))
class Meta:
model = report
# fields = ('machine',)
class reportAdmin(ImportExportModelAdmin, admin.ModelAdmin):
list_display = ("machine", "last_active", "return_code", "comment", "status")
resources_class = reportResource
admin.site.register(report, reportAdmin)
admin.site.register(asset)
Я экспортирую данные отчета. Я хотел бы получить название актива вместо идентификатора.
Я попытался выполнить пример, приведенный в документе https://django-import-export.readthedocs.io/en/latest/api_widgets.html#import_export.widgets.ForeignKeyWidget
Но он по-прежнему экспортирует идентификатор актива вместо названия