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')