我对Django有一些问题,Django ORM将逗号视为分隔符。
在下面添加示例代码。
print sub_categorys.description # is printed as "drum class and drums feature"
print sub_categorys.image_url # is printed as ", bongo class no.jpg"
但是,真正的数据库行是description =“鼓类和鼓功能,bongo类”和image_url =“no.npg”
请帮帮我吧! 谢谢!
下面通过代码进行补充说明。
** model.py **
class SubCategory(models.Model):
name = models.TextField( unique=True )
description = models.TextField( null=True )
image_url = models.URLField( null=True )
** views.py > code use to insert data to model **
with open('./classes/resource/model/csv/sub_category_model.csv', 'rb') as f:
reader = csv.reader(f)
is_first = True
for row in reader:
if is_first:
is_first = False
continue
sub_category = SubCategory(name=unicode(row[0], 'euc-kr'),
description=unicode(row[3], 'euc-kr'),
image_url=unicode(row[4], 'euc-kr'))
try:
sub_category.save()
except Exception, e:
logger.error(e)
答案 0 :(得分:0)
使用逗号作为分隔符的ORM不是csv.reader
。如果要导入包含逗号的字符串,则必须将它们用引号括起来。确保CSV文件包含正确的引用。在上面给出您的代码,您的CSV行应该是这样的:
foo,bar,baz,"drum class and drums feature, bongo class",no.jpg
如果出于某种原因这是一个问题,您可以选择其他分隔符,例如:
reader = csv.reader(csvfile, delimiter='|')
将作为输入:
foo|bar|baz|drum class and drums feature, bongo class|no.jpg
中提供了更多示例