社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django模型上的小字节数,建模应该使用什么类型?

Adam Parkin • 6 年前 • 1557 次点击  

我有一个模型,我想在其中存储一些小的(2-4字节)字节字符串(例如: b'foo' b'\x02' )我想知道在我的django模型上建模的最佳方法。我想我可以用 CharField 但这似乎不像我想象的那样有效。BinaryField似乎确实有效,但我不确定它是否适用于长度较短的字段(同样,通常是2-4字节)

给定模型:

class Foobar(models.Model):
    charfield = models.CharField(max_length=10)
    binaryfield = models.BinaryField()

当我这样做的时候:

>>> fb1 = Foobar()
>>> fb1.charfield = b'\0000'
>>> fb1.binaryfield = b'\0000'
>>> fb1.save()

然后读回记录:

>>> read = Foobar.objects.get(id=fb1.id)
>>> read.charfield == b'\0000'
False
>>> read.binaryfield == b'\0000'
True

我希望这两项平等检查都是真实的。此外, the docs 似乎表明不允许在二进制字段上过滤查询集(这是我需要做的事情)。说了这句话,似乎对我有用:

>>> Foobar.objects.filter(binaryfield__in=[b'\0000', b'blarg'])
<QuerySet [<Foobar: Foobar object>]>

我是不是错过了一些关于查菲尔德的东西?BinaryField是这里的合适选择吗?还是有更好的选择?

如果这很重要,我将使用django 1.11(当前最新的LTS版本),这是一个在Python3.6上运行的项目。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30411
 
1557 次点击  
文章 [ 1 ]  |  最新文章 6 年前