1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Create CachedValueField to contain search specific lookups

This commit is contained in:
kkthxbye-code
2023-02-07 09:40:25 +01:00
committed by Jeremy Stretch
parent a61e7e7c04
commit eed1b8f412
4 changed files with 30 additions and 3 deletions

7
netbox/extras/fields.py Normal file
View File

@ -0,0 +1,7 @@
from django.db.models import TextField
class CachedValueField(TextField):
"""
Currently a dummy field to prevent custom lookups being applied globally to TextField.
"""
pass

View File

@ -1,5 +1,5 @@
from django.db.models import CharField, TextField, Lookup from django.db.models import CharField, TextField, Lookup
from .fields import CachedValueField
class Empty(Lookup): class Empty(Lookup):
""" """
@ -27,4 +27,4 @@ class NetContainsOrEquals(Lookup):
return 'CAST(%s as inet) >>= %s' % (lhs, rhs), params return 'CAST(%s as inet) >>= %s' % (lhs, rhs), params
CharField.register_lookup(Empty) CharField.register_lookup(Empty)
TextField.register_lookup(NetContainsOrEquals) CachedValueField.register_lookup(NetContainsOrEquals)

View File

@ -0,0 +1,19 @@
# Generated by Django 4.1.6 on 2023-02-07 08:21
from django.db import migrations
import extras.fields
class Migration(migrations.Migration):
dependencies = [
('extras', '0084_staging'),
]
operations = [
migrations.AlterField(
model_name='cachedvalue',
name='value',
field=extras.fields.CachedValueField(),
),
]

View File

@ -4,6 +4,7 @@ from django.contrib.contenttypes.models import ContentType
from django.db import models from django.db import models
from utilities.fields import RestrictedGenericForeignKey from utilities.fields import RestrictedGenericForeignKey
from ..fields import CachedValueField
__all__ = ( __all__ = (
'CachedValue', 'CachedValue',
@ -36,7 +37,7 @@ class CachedValue(models.Model):
type = models.CharField( type = models.CharField(
max_length=30 max_length=30
) )
value = models.TextField() value = CachedValueField()
weight = models.PositiveSmallIntegerField( weight = models.PositiveSmallIntegerField(
default=1000 default=1000
) )