Django で符号なし整数フィールドを使用する方法はありますか? これは、0 から 4294967295 の範囲のモデル内のフィールドを意味し、32 ビットを格納します。PositiveIntegerField
この定義では、範囲が 0 ~ 2147483647 しかないため、を除外してbigIntegerField
います。また、大量のメモリを浪費するため、 a を使用しないことを好みます。
質問する
9632 次
3 に答える
9
私の知る限り、Django の符号なし整数フィールドはPositiveIntegerField
とだけPositiveSmallIntegerField
で、どちらも小さすぎます。必要なものを取得するには、おそらくカスタム フィールドを確認する必要があります。そのためのドキュメントはこちらです。カスタム フィールドを作成するときに非常に役立つことの 1 つは、公式の django モデル フィールドの 1 つのコードを確認することです。それらはすべてで見つけることができますdjango/db/models/fields/__init__.py
私はいくつかのコードを投稿しますが、それがあなたが必要とするものであると確信するのに十分なカスタムフィールドの経験がありません. がんばれ!
于 2013-09-21T04:37:37.883 に答える
3
Django 2.2 以降、カスタム フィールドの作成方法に関する公式ドキュメントがあります。最良の部分は、ここに作成の例があることUnsignedAutoField
です。Django 2.0 での私のユース ケースでは、このスニペットで十分でした。
from django.db.models.fields import AutoField
class UnsignedAutoField(AutoField):
def db_type(self, connection):
return 'integer UNSIGNED AUTO_INCREMENT'
def rel_db_type(self, connection):
return 'integer UNSIGNED'
お役に立てれば。
于 2019-05-25T15:34:23.153 に答える