Здравствуйте, я новичок в Django Framework и застрял с проблемой ниже при использовании django -import-export в django панели администратора.
У меня есть связь между двумя моделями через Внешний ключ, и я хотел бы экспортировать атрибут вместо «id» связанного элемента.
Я пробовал ForeignKeyWidget не работает. Я также пытался получить заслуженный атрибут с помощью определения полей и использования подчеркивания, например «custodian__name», и не повезло.
Затем я обнаружил, что фактически не могу ничего изменить в экспортированном файле (даже не выбирая, какие поля экспортировать и т. Д.) c.) Я всегда сохранял свою работу и даже пытался перезапускать сервер после каждого изменения, но все равно не повезло. Без ошибок, я просто продолжаю экспортировать тот же самый файл, который является экспортом всех полей в базе данных.
Я не могу найти, что я делаю неправильно. Надеюсь, что кто-то может помочь
# admin.py
from django.contrib import admin
from import_export import resources, fields
from import_export.widgets import ForeignKeyWidget
from import_export.admin import ImportExportModelAdmin
from .models import Custodian, Asset
class AssetResource(resources.ModelResource):
custodian = fields.Field(column_name = 'custodian', attribute = 'custodian',
widget = ForeignKeyWidget(Custodian, 'name'))
class Meta:
model = Asset
fields =('tag_number', 'description', 'custodian',)
class AssetAdmin(ImportExportModelAdmin, ExportMixin):
resources_class = AssetResource
admin.site.register(Asset, AssetAdmin)
#models.py
class Asset(models.Model):
tag_number = models.CharField(max_length=18)
description = models.CharField(max_length=80)
price = models.DecimalField(decimal_places=2, max_digits=8, default=123)
custodian = models.ForeignKey(Custodian, blank=True, null=True, on_delete=models.CASCADE)
class Custodian(models.Model):
name = models.CharField(max_length=50)
position = models.CharField(max_length=50)
base = models.CharField(max_length=10, default="ERB")