私は自分のプロジェクトにDjango 1.5.3
andを使用しています。PostgreSQL
私のテーブルにはCIDR
型フィールドがあり、Django でモデル化したいと考えていました。私はCIDRField
like を使用しています。
class CIDRField(models.Field):
def __init__(self, *args, **kwargs):
super(CIDRField, self).__init__(*args, **kwargs)
def db_type(self, connection):
return "CIDR"
def to_python(self, value):
return str(value)
def get_db_prep_value(self, value, connection, prepared=False):
# Convert value to pure network address to prevent
# PostgreSQL exception
if IP.prefix(value):
return IP.prefix(value).first.prefix
を使用してテーブルをクエリするときは、代わりに;CIDRField
を使用する必要があります。raw
filter
select * from ip_table where ip<<'0.0.0.0/0'
また、CIDRField 以外の別のフィールドがあり、このテーブルに関するすべてのクエリを .xml で作成したくありませんraw
。また、両方を使用する方法もありません。
CIDRField をそれ以上にカスタマイズして、raw の代わりに filter を使用して CIDRField のクエリを実行できるかもしれません。たとえば、、、またはルックアップ関数をカスタマイズgt
できますかgte
? , , の代わりに, ,を探しているのでしょうか。Django でこの演算子をカスタマイズできますか?lt
lte
<<
<<=
>>
>>=
<
<=
>
>=
ありがとうございました。