Django Импорт Экспорт данных без ID

Я пытался экспортировать данные из Django в Excel, но все идет за мной, когда я экспортирую файл Excel, Django экспортирует только Ids : введите описание изображения здесь

Я попытался пройтись по некоторым учебникам, таким как : https://django-import-export.readthedocs.io/en/latest/api_widgets.html и Django call 'id' ожидал число, но получил строку.

В Django App у меня есть: models.py

from pyexpat import model
from statistics import mode
from django.db import models
from django.contrib.auth.models import User
from django.db.models.base import Model
from django.forms import IntegerField



class Post(models.Model):
    name = models.CharField(max_length=150)

    def __str__(self):
        return str(self.name)


class Person(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)

    def __str__(self):
        return f"({self.name} is {self.post} "



class Room(models.Model):
    name = models.CharField(max_length= 150 )

    def __str__(self):
        return str(self.name)


class Classification(models.Model):
    name = models.ForeignKey(Person, on_delete=models.CASCADE)
    room = models.ForeignKey(Room, on_delete=models.CASCADE)
    date = models.DateField(auto_created=False)

    def __str__(self):
        return f"({self.name} Take {self.room}  at {self.date})"

admin.py

    from django.contrib import admin
    from import_export.admin import ImportExportModelAdmin
    from .models import *
    from import_export import fields, resources
    from import_export.widgets import ForeignKeyWidget


@admin.register(Post, Room, Classification, Person)
class TestappImportExport(ImportExportModelAdmin):
    pass

class Classificationresource(resources.ModelResource):
    name = fields.Field(
        column_name='name',
        attribute='name',
        widget=ForeignKeyWidget(Person, 'name'))

    room = fields.Field(
        column_name = 'room',
        attribute = 'room',
        widget= ForeignKeyWidget(Room, 'name'))

    class Meta:
        fields = ('name', 'room')

я даже пытался перевернуть класс Classificationresource(resources.ModelResource) на Classificationresource(resources.ModelResource), и я все равно получаю идентификаторы, а не названия персон или комнат.

Пожалуйста, помогите мне решить эту проблему, я устал находиться в поиске и чувствую, что трачу на это время.

Из документации:

При определении полей ModelResource можно следовать отношениям модели:

class BookResource(resources.ModelResource):

    class Meta:
        model = Book
        fields = ('author__name',)

Так что я бы попробовал следующее:

class Classificationresource(resources.ModelResource):

    class Meta:
        model = Classification
        fields = ('id', 'name__name', 'room__name', 'date')
Вернуться на верх