Skip to content

Commit

Permalink
Add IP4/6Network and Url serialisation
Browse files Browse the repository at this point in the history
  • Loading branch information
grigi committed Dec 2, 2024
1 parent 97ef291 commit af389ce
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions ninja/responses.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from enum import Enum
from ipaddress import IPv4Address, IPv6Address
from ipaddress import IPv4Address, IPv4Network, IPv6Address, IPv6Network
from typing import Any, FrozenSet

from django.core.serializers.json import DjangoJSONEncoder
from django.http import JsonResponse
from pydantic import BaseModel
from pydantic_core import Url

__all__ = [
"NinjaJSONEncoder",
Expand All @@ -21,7 +22,9 @@ class NinjaJSONEncoder(DjangoJSONEncoder):
def default(self, o: Any) -> Any:
if isinstance(o, BaseModel):
return o.model_dump()
if isinstance(o, (IPv4Address, IPv6Address)):
if isinstance(o, Url):
return str(o)
if isinstance(o, (IPv4Address, IPv4Network, IPv6Address, IPv6Network)):
return str(o)
if isinstance(o, Enum):
return str(o)
Expand Down

0 comments on commit af389ce

Please sign in to comment.