Я использую монгоэнджин. Я хочу иметь возможность установить для моего поля значение null в базе данных, когда, например. строка пуста.
Я пробовал следующее: мне кажется, что всякий раз, когда я передаю None, поле пропускается, и я не могу заменить существующее значение. Это вообще возможно?
if user.contact_phone_number == "":
user.contact_phone_number = None
Мой документ:
contact_phone_number = StringField(
db_field = "contactPhoneNumber",
regex=RE_CONTACT_PHONE,
unique=False,
sparse=True,
required=False,
null=True
)
У меня нет проблем с установкой для StringField значения None, см. ниже
from mongoengine import *
connect()
class TestDoc(Document):
s = StringField()
TestDoc(s='test').save()
t = TestDoc.objects.first()
assert t.s == 'test'
t.s = ""
t.save()
t = TestDoc.objects.first()
assert t.s is ""
t.s = None
t.save()
t = TestDoc.objects.first()
assert t.s is None
Я обнаружил, что установка None не устанавливает значение null, как я ожидал, оно просто удаляет поле, поэтому вы можете назначить его позже.