mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-17 20:46:30 -06:00
#1344: Add missing object field to ContactAssignmentSerializer
This commit is contained in:
parent
96cde7d4af
commit
8bb9f4b8a2
@ -1,10 +1,12 @@
|
||||
from django.contrib.auth.models import ContentType
|
||||
from drf_yasg.utils import swagger_serializer_method
|
||||
from rest_framework import serializers
|
||||
|
||||
from netbox.api import ChoiceField, ContentTypeField
|
||||
from netbox.api.serializers import NestedGroupModelSerializer, PrimaryModelSerializer
|
||||
from tenancy.choices import ContactPriorityChoices
|
||||
from tenancy.models import *
|
||||
from utilities.api import get_serializer_for_model
|
||||
from .nested_serializers import *
|
||||
|
||||
|
||||
@ -92,6 +94,7 @@ class ContactAssignmentSerializer(PrimaryModelSerializer):
|
||||
content_type = ContentTypeField(
|
||||
queryset=ContentType.objects.all()
|
||||
)
|
||||
object = serializers.SerializerMethodField(read_only=True)
|
||||
contact = NestedContactSerializer()
|
||||
role = NestedContactRoleSerializer(required=False, allow_null=True)
|
||||
priority = ChoiceField(choices=ContactPriorityChoices, required=False)
|
||||
@ -99,6 +102,12 @@ class ContactAssignmentSerializer(PrimaryModelSerializer):
|
||||
class Meta:
|
||||
model = ContactAssignment
|
||||
fields = [
|
||||
'id', 'url', 'display', 'content_type', 'object_id', 'contact', 'role', 'priority', 'created',
|
||||
'id', 'url', 'display', 'content_type', 'object_id', 'object', 'contact', 'role', 'priority', 'created',
|
||||
'last_updated',
|
||||
]
|
||||
|
||||
@swagger_serializer_method(serializer_or_field=serializers.DictField)
|
||||
def get_object(self, instance):
|
||||
serializer = get_serializer_for_model(instance.content_type.model_class(), prefix='Nested')
|
||||
context = {'request': self.context['request']}
|
||||
return serializer(instance.object, context=context).data
|
||||
|
@ -82,6 +82,6 @@ class ContactViewSet(CustomFieldModelViewSet):
|
||||
|
||||
|
||||
class ContactAssignmentViewSet(CustomFieldModelViewSet):
|
||||
queryset = ContactAssignment.objects.prefetch_related('contact', 'role')
|
||||
queryset = ContactAssignment.objects.prefetch_related('object', 'contact', 'role')
|
||||
serializer_class = serializers.ContactAssignmentSerializer
|
||||
filterset_class = filtersets.ContactAssignmentFilterSet
|
||||
|
@ -190,4 +190,4 @@ class ContactAssignmentFilterSet(ChangeLoggedModelFilterSet):
|
||||
|
||||
class Meta:
|
||||
model = ContactAssignment
|
||||
fields = ['id', 'content_type_id', 'priority']
|
||||
fields = ['id', 'content_type_id', 'object_id', 'priority']
|
||||
|
Loading…
Reference in New Issue
Block a user