我试图将随机变量存储到Django中的Sqlite数据库,但是我收到了这个错误:
除非使用可解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您只需将应用程序切换为Unicode字符串。
这是我的代码:
random_number = os.urandom(16)
SomeModel.objects.filter(id=2).update(number=random_number)
Models.py:
class SomeModel(models.Model):
random = models.CharField(max_length=32)
我使用Python 2.7.10和Django 1.9。
答案 0 :(得分:1)
如果仍有可能,您可以更改模型以使用BinaryField
:
class SomeModel(models.Model):
random = models.BinaryField(max_length=32)
另一方面,如果模型已经完成,请考虑一些二进制到文本编码,如base64:
from base64 import b64encode
random_number = os.urandom(16)
SomeModel.objects.filter(id=2).update(number=b64encode(random_number))