如何解决将外键添加到 Django 导入导出
我正在尝试使用 Django_Import Export 从 csv 导入数据。我看到了其他 SO 帖子,但他们没有帮助。以下是模型
模型.py
class TblSubject(amdl.AagamBaseModel):
subject_id = models.AutoField(primary_key=True)
subject_name = models.CharField(max_length=20)
standard = models.ForeignKey('TblStandard',models.DO_nothing)
remembrance_credit = models.IntegerField(default=40)
applied_kNowledge_credit = models.IntegerField(default=30)
understanding_credit = models.IntegerField(default=30)
subject_credit = models.IntegerField(default=100)
class Meta:
db_table = 'tblsubject'
def __str__(self):
return f'{self.subject_name}'
class SubjectChapter(amdl.AagamBaseModel):
subject_chapter_id = models.AutoField(primary_key=True)
subject = models.ForeignKey('TblSubject',on_delete=models.CASCADE)
chapter_id = models.IntegerField()
chapter_name = models.CharField(max_length=150)
remembrance_credit = models.IntegerField()
applied_kNowledge_credit = models.IntegerField()
understanding_credit = models.IntegerField()
chapter_credit = models.IntegerField()
class Meta:
db_table = 'subject_chapter'
def __str__(self):
return f'{self.chapter_id} {self.chapter_name} : {self.subject}'
这里是admin.py
from django.contrib import admin
from import_export import resources,fields
from import_export.widgets import ForeignKeyWidget
from .models import SubjectChapter,TblSubject
from import_export.admin import ImportExportModelAdmin
class SubjectChapterResource(resources.ModelResource):
class Meta:
model = SubjectChapter
import_id_fields = ('subject_chapter_id',)
subject = fields.Field(
column_name='subject_name',attribute='subject_name',widget=ForeignKeyWidget(TblSubject,'subject_id'))
class SubjectChapteradmin(ImportExportModelAdmin):
resource_class = SubjectChapterResource
admin.site.register(SubjectChapter,SubjectChapteradmin)
我收到以下错误
我正在从 csv 插入 SUBJECTCHAPTER 的数据,其中 SUBJECT 列是来自 TBLSUBJECT 的外键,它包含 TBLSUBJECT 的名称。
解决方法
改变这个
class SubjectChapterResource(resources.ModelResource):
class Meta:
model = SubjectChapter
import_id_fields = ('subject_chapter_id',)
subject = fields.Field(
column_name='subject_name',attribute='subject_name',widget=ForeignKeyWidget(TblSubject,'subject_name'))
从subject_id
到subject_name
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。