Django-Import-Export - 如何从模型中导入 while "ignoring" __str__ 方法
Django-Import-Export - How to Import while "ignoring" __str__ method from Model
我有以下型号:
class Code(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
code = models.CharField(max_length=3)
variant = models.CharField(max_length=1)
class Meta:
unique_together = ('project', 'code', 'variant',)
def __str__(self):
return self.code + self.variant
我在 admin.py 中的代码 - 请注意,这只是基本代码 - 不使用 ModelResource - 我尝试将 ModelResource 方法用于 "handle" 模型中的 str 方法尚未成功成功。
from django.contrib import admin
from import_export.admin import ImportMixin
class CodeAdmin(ImportMixin, admin.ModelAdmin):
list_display = ('Code', 'Variant')
admin.site.register(Code, CodeAdmin)
尝试导入时 - 使用管理员 - 由于代码模型中的 str 方法,我收到以下错误。
Line number: 1 - unsupported operand type(s) for +: 'int' and 'str'
None, 1, 700, a
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\import_export\resources.py", line 464, in import_row
row_result.object_repr = force_text(instance)
File "C:\Python34\lib\site-packages\django\utils\encoding.py", line 76, in force_text
s = six.text_type(s)
File "C:\GitHub\WebApps\sidProject\sidApp\models.py", line 58, in __str__
return self.Code + self.Variant
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我的问题 - 在这种情况下,我如何 "ignore" str。似乎正在使用以下 ModelResource 代码在 django-import-export 示例代码中完成,但我无法让它工作我的情况:
def for_delete(self, row, instance):
return self.fields['name'].clean(row) == ''
如有任何我遗漏的帮助或示例,我们将不胜感激。
谢谢
这 2 个模型字段刚刚使用 + 连接起来。只需按照 Django docs 中概述的方法进行操作即可。
return '%s%s' % (self.Code_code, self.Variant)
问题解决了!吸取的教训甚至可能 - 不过要考虑吸取的教训。
我有以下型号:
class Code(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
code = models.CharField(max_length=3)
variant = models.CharField(max_length=1)
class Meta:
unique_together = ('project', 'code', 'variant',)
def __str__(self):
return self.code + self.variant
我在 admin.py 中的代码 - 请注意,这只是基本代码 - 不使用 ModelResource - 我尝试将 ModelResource 方法用于 "handle" 模型中的 str 方法尚未成功成功。
from django.contrib import admin
from import_export.admin import ImportMixin
class CodeAdmin(ImportMixin, admin.ModelAdmin):
list_display = ('Code', 'Variant')
admin.site.register(Code, CodeAdmin)
尝试导入时 - 使用管理员 - 由于代码模型中的 str 方法,我收到以下错误。
Line number: 1 - unsupported operand type(s) for +: 'int' and 'str'
None, 1, 700, a
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\import_export\resources.py", line 464, in import_row
row_result.object_repr = force_text(instance)
File "C:\Python34\lib\site-packages\django\utils\encoding.py", line 76, in force_text
s = six.text_type(s)
File "C:\GitHub\WebApps\sidProject\sidApp\models.py", line 58, in __str__
return self.Code + self.Variant
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我的问题 - 在这种情况下,我如何 "ignore" str。似乎正在使用以下 ModelResource 代码在 django-import-export 示例代码中完成,但我无法让它工作我的情况:
def for_delete(self, row, instance):
return self.fields['name'].clean(row) == ''
如有任何我遗漏的帮助或示例,我们将不胜感激。
谢谢
这 2 个模型字段刚刚使用 + 连接起来。只需按照 Django docs 中概述的方法进行操作即可。
return '%s%s' % (self.Code_code, self.Variant)
问题解决了!吸取的教训甚至可能 - 不过要考虑吸取的教训。