私が設定したモデルでは:
class Task(models.Model):
EstimateEffort = models.PositiveIntegerField('Estimate hours',max_length=200)
Finished = models.IntegerField('Finished percentage',blank=True)
Finished
しかし、Web ページでは、フィールドに値を設定しなかった場合、エラーが表示されますThis field is required
。私は試しnull=True
てみblank=True
ました。しかし、どれも機能しませんでした。フィールドを空にする方法を教えてください。
属性があることがわかりましたempty_strings_allowed
。それをTrueに設定しましたが、それでも同じで、models.IntegerFieldをサブクラス化しました。それはまだ動作しません
class IntegerNullField(models.IntegerField):
description = "Stores NULL but returns empty string"
empty_strings_allowed =True
log.getlog().debug("asas")
def to_python(self, value):
log.getlog().debug("asas")
# this may be the value right out of the db, or an instance
if isinstance(value, models.IntegerField):
# if an instance, return the instance
return value
if value == None:
# if db has NULL (==None in Python), return empty string
return ""
try:
return int(value)
except (TypeError, ValueError):
msg = self.error_messages['invalid'] % str(value)
raise exceptions.ValidationError(msg)
def get_prep_value(self, value):
# catches value right before sending to db
if value == "":
# if Django tries to save an empty string, send to db None (NULL)
return None
else:
return int(value) # otherwise, just pass the value