首页 > 解决方案 > django-export 数据真实值而不是foreign_id

问题描述

plz你能告诉我如何在django中将数据foreign_id而不是真实值导出为ex​​cel文件吗

学生.py

class Students(models.Model):
    MY_CHOICES = (
        ('m', 'male'),
        ('f', 'female'),
    )
    first_name = models.CharField(max_length=50,unique=False)
    last_name = models.CharField(max_length=50,unique=False)
    date_of_birth = models.DateField(null=True,blank=True,)
    gender = models.CharField(max_length=10,choices=MY_CHOICES)
    school= models.ForeignKey(school, on_delete=models.CASCADE)
    date_added =models.DateTimeField(auto_now_add=True,null=True,blank=True,) 
    
    def __str__(self):
        return self.first_name + ' ' + self.last_name
    class Meta:
        verbose_name = 'Student'

管理员.py

from school.models import School,fields
class StudentsResource(resources.ModelResource):
    class Meta:
        model = Students
        school= fields.Field(id='school',attribute='school',widget=widgets.ForeignKeyWidget(School, 'school'))
  

学校.py

class School(models.Model):
   school= models.CharField(max_length=50,unique=True,)
'''
Thank you for your help

[excel file]
https://i.stack.imgur.com/aLGZM.png

标签: django

解决方案


您可以使用 django 的双下划线符号来访问相关字段。

所以这个例子适用于相关模型上的学校名称,假设一个学校实例有一个名字;

class StudentResource(resources.ModelResource):

    class Meta:
        model = Student
        fields = ('school__name',)

推荐阅读