mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Merge release v2.4.6
This commit is contained in:
@@ -190,6 +190,19 @@ class ModelViewSet(_ModelViewSet):
|
||||
|
||||
return super(ModelViewSet, self).get_serializer(*args, **kwargs)
|
||||
|
||||
def get_serializer_class(self):
|
||||
|
||||
# If 'brief' has been passed as a query param, find and return the nested serializer for this model, if one
|
||||
# exists
|
||||
request = self.get_serializer_context()['request']
|
||||
if request.query_params.get('brief', False):
|
||||
serializer_class = get_serializer_for_model(self.queryset.model, prefix='Nested')
|
||||
if serializer_class is not None:
|
||||
return serializer_class
|
||||
|
||||
# Fall back to the hard-coded serializer class
|
||||
return self.serializer_class
|
||||
|
||||
|
||||
class FieldChoicesViewSet(ViewSet):
|
||||
"""
|
||||
|
||||
@@ -2,6 +2,7 @@ import csv
|
||||
from io import StringIO
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
@@ -148,6 +149,11 @@ def add_blank_choice(choices):
|
||||
return ((None, '---------'),) + tuple(choices)
|
||||
|
||||
|
||||
def utf8_encoder(data):
|
||||
for line in data:
|
||||
yield line.encode('utf-8')
|
||||
|
||||
|
||||
#
|
||||
# Widgets
|
||||
#
|
||||
@@ -301,7 +307,12 @@ class CSVDataField(forms.CharField):
|
||||
def to_python(self, value):
|
||||
|
||||
records = []
|
||||
reader = csv.reader(StringIO(value))
|
||||
|
||||
# Python 2 hack for Unicode support in the CSV reader
|
||||
if sys.version_info[0] < 3:
|
||||
reader = csv.reader(utf8_encoder(StringIO(value)))
|
||||
else:
|
||||
reader = csv.reader(StringIO(value))
|
||||
|
||||
# Consume and validate the first line of CSV data as column headers
|
||||
headers = next(reader)
|
||||
|
||||
Reference in New Issue
Block a user