python / expert
Snippet
Custom Database Expression for Bitwise AND Masking
Custom Django database expressions allow performing low-level database operations directly inside QuerySet annotations or filters. `BitwiseAnd` translates bitwise operations to raw SQL while preserving param escaping.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
from django.db.models.expressions import Expressionclass BitwiseAnd(Expression):def __init__(self, expression, mask):super().__init__()self.expression = expressionself.mask = maskdef as_sql(self, compiler, connection):expr_sql, expr_params = compiler.compile(self.expression)return f"({expr_sql} & %s)", expr_params + [self.mask]
django
Breakdown
1
class BitwiseAnd(Expression):
Subclasses base Expression to build custom SQL nodes compatible with Django ORM queries.
2
def __init__(self, expression, mask):
Stores the field or F() expression and integer mask parameter for SQL generation.
3
def as_sql(self, compiler, connection):
Renders the expression node into driver-specific SQL fragment and positional values.
4
expr_sql, expr_params = compiler.compile(self.expression)
Delegates inner expression compilation to SQLCompiler for recursive resolution.
5
return f"({expr_sql} & %s)", expr_params + [self.mask]
Returns bitwise AND SQL syntax appending the integer mask value securely into params list.