我正在嘗試將 .csv 檔案中的幾行插入到 Django 中的 SQLite 中。我不想使用 import_data(),因為我想對每次插入進行更精細的控制。我的模型是這樣的:
class Box(models.Model):
name = models.CharField(max_length=30)
color = models.CharField(max_length=30)
size = LengthField(blank=True, null=True, default=None, decimal_places=2,validators=(MinValueValidator(0, field_type='Length'),MaxValueValidator(100, field_type='Length'))))
只有名稱具有唯一性的約束。現在,當我正在運行get_or_create并且有一個大小為空白的 csv 行時,我收到一個錯誤“ValueError - Field 'size' 需要一個數字,但得到了 'NA'”。(對于之前的 csv 行,所有內容都正確插入。)
我覺得很奇怪,因為在我擁有的模型blank=True和null=True尺寸中。我可能做錯了什么,我該如何解決?先感謝您!
uj5u.com熱心網友回復:
好吧,您嘗試將字串'NA'作為size欄位的值傳遞,因此這是行不通的。在用于創建模型物件的邏輯中,您應該將其替換為None,因此類似于:
name = …
color = …
size = …
# ↓ replace 'NA' with None
if size == 'NA':
size = None
Box.objects.get_or_create(
name=name,
defaults={'color': color, 'size': size}
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/376500.html
上一篇:洗掉日期差最大的行
