[英]Django error message: ["'on' value must be either True or False."]
[英]django.core.exceptions.ValidationError: ['“TRUE” value must be either True or False.']
我正在嘗試通過我為此編寫的腳本在 django ORM 中上傳數據
for index, row in df.iterrows():
allocated = row['is_allocated']
delivery_required_on = row['delivery_required_on']
linked = row['linked']
raised_by = row['raised_by']
raised_for = Company.objects.get(pk=row['raised_for']) ### double check
rejected = row['is_rejected']
reason = row['reason']
remarks = row['remarks']
created = row['created_at']
owner = User.objects.get(pk=row['New owner'])
j = literal_eval(row['flows'])
flows = []
mobj = MaterialRequest.objects.create(owner=owner, is_allocated=allocated,
delivery_required_on=delivery_required_on, linked=linked,
raised_by=raised_by, raised_for=raised_for, is_rejected=rejected,
reason=reason, remarks=remarks, created=created)
但是一旦is_allocated
達到False
,它就會顯示以下錯誤:
django.core.exceptions.ValidationError:['“TRUE”值必須是 True 或 False。']
我找不到與此相關的內容
您的 model 的is_allocated
屬性似乎是 boolean。因此您應該為其分配一個 boolean 值。 但是數據框中的列值是字符串TRUE
和FALSE
。
替換這條線
allocated = row['is_allocated']
和
allocated = (row['is_allocated'] == 'TRUE')
可能有幫助。
如果您只有None
和True
值,請也考慮False
。
這是因為您試圖將字符串存儲在 boolean 字段中。 一種解決方案是將您的字符串類型更改為 boolean。也許在您的代碼中使用 function 可以解決您的問題:
def to_boolean(raw_value: str) -> bool:
if not isinstance(raw_value, str):
raw_value = str(raw_value)
raw_value = raw_value.strip()
return {'true': True, 'false': False}.get(raw_value.lower(), False)
然后在你的循環中使用它(你認為你的字段類型是布爾值的地方):
for index, row in df.iterrows():
allocated = to_boolean(row['is_allocated'])
delivery_required_on = row['delivery_required_on']
linked = row['linked']
raised_by = row['raised_by']
raised_for = Company.objects.get(pk=row['raised_for']) ### double check
rejected = to_boolean(row['is_rejected'])
reason = row['reason']
remarks = row['remarks']
created = row['created_at']
owner = User.objects.get(pk=row['New owner'])
j = literal_eval(row['flows'])
flows = []
mobj = MaterialRequest.objects.create(owner=owner, is_allocated=allocated,
delivery_required_on=delivery_required_on, linked=linked,
raised_by=raised_by, raised_for=raised_for, is_rejected=rejected,
reason=reason, remarks=remarks, created=created)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.