mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Move dict_to_querydict() and normalize_querydict() to utilities.querydict
This commit is contained in:
@ -4,7 +4,6 @@ from django.db.models import Count, ManyToOneRel, OuterRef, Subquery
|
||||
from django.db.models.functions import Coalesce
|
||||
from django.http import QueryDict
|
||||
from django.utils import timezone
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
from django.utils.timezone import localtime
|
||||
|
||||
from .string import title
|
||||
@ -70,37 +69,6 @@ def dict_to_filter_params(d, prefix=''):
|
||||
return params
|
||||
|
||||
|
||||
def dict_to_querydict(d, mutable=True):
|
||||
"""
|
||||
Create a QueryDict instance from a regular Python dictionary.
|
||||
"""
|
||||
qd = QueryDict(mutable=True)
|
||||
for k, v in d.items():
|
||||
item = MultiValueDict({k: v}) if isinstance(v, (list, tuple, set)) else {k: v}
|
||||
qd.update(item)
|
||||
if not mutable:
|
||||
qd._mutable = False
|
||||
return qd
|
||||
|
||||
|
||||
def normalize_querydict(querydict):
|
||||
"""
|
||||
Convert a QueryDict to a normal, mutable dictionary, preserving list values. For example,
|
||||
|
||||
QueryDict('foo=1&bar=2&bar=3&baz=')
|
||||
|
||||
becomes:
|
||||
|
||||
{'foo': '1', 'bar': ['2', '3'], 'baz': ''}
|
||||
|
||||
This function is necessary because QueryDict does not provide any built-in mechanism which preserves multiple
|
||||
values.
|
||||
"""
|
||||
return {
|
||||
k: v if len(v) > 1 else v[0] for k, v in querydict.lists()
|
||||
}
|
||||
|
||||
|
||||
def prepare_cloned_fields(instance):
|
||||
"""
|
||||
Generate a QueryDict comprising attributes from an object's clone() method.
|
||||
|
Reference in New Issue
Block a user