Browse Source

create func get_object_or_None in djing

devel
bashmak 8 years ago
parent
commit
15d33c3b0c
  1. 16
      djing/__init__.py

16
djing/__init__.py

@ -1,6 +1,8 @@
import os import os
import re import re
import importlib import importlib
from django.shortcuts import _get_queryset
from netaddr import mac_unix, mac_eui48 from netaddr import mac_unix, mac_eui48
MAC_ADDR_REGEX = r'^([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]{1,2})$' MAC_ADDR_REGEX = r'^([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]{1,2})$'
@ -51,3 +53,17 @@ def ping(ip_addr: str, count=1):
return True if response == 0 else False return True if response == 0 else False
else: else:
return False return False
def get_object_or_None(klass, *args, **kwargs):
queryset = _get_queryset(klass)
try:
return queryset.get(*args, **kwargs)
except AttributeError:
klass__name = klass.__name__ if isinstance(klass, type) else klass.__class__.__name__
raise ValueError(
"First argument to get_object_or_404() must be a Model, Manager, "
"or QuerySet, not '%s'." % klass__name
)
except queryset.model.DoesNotExist:
return
Loading…
Cancel
Save