Обновлен файл serializers.py, чтобы включить приведенный ниже код
class ReceiptLogSerializerClass(serializers.Serializer):
#Fields
def create(self, validated_data):
raw_data_list = []
many = isinstance(validated_data, list)
if many:
raw_data_list = validated_data
else:
raw_data_list.append(validated_data)
result_id = 1
for data_row in raw_data_list:
new_command_run_entry = {
'team_name': data_row.get('team_name'),
'suite_name': data_row.get('suite_name'),
'suite_run_id': data_row.get('suite_run_id'),
'case_name': data_row.get('case_name'),
'command_name': data_row.get('command_name'),
'command_run_id': data_row.get('command_run_id'),
'run_start': data_row.get('run_start'),
'run_end': data_row.get('run_end'),
'result': data_row.get('result'),
'run_status': data_row.get('run_status')
}
response = TestCaseCommandRunSerializer.create(TestCaseCommandRunSerializer(),validated_data= new_command_run_entry)
new_command_run_result_entry = {
'suite_run_id': data_row.get('suite_run_id'),
'command_run_id': data_row.get('command_run_id'),
'rule_name': data_row.get('rule_name'),
'result_id': result_id,
'result': data_row.get('result'), # PASS or FAIL
'expected_values': data_row.get('expected_values'),
'actual_values': data_row.get('actual_values'),
'report_values': data_row.get('report_values'),
'extended_values': data_row.get('extended_values'),
}
response = TestCaseCommandRunResultsSerializer.create(TestCaseCommandRunResultsSerializer(),validated_data= new_command_run_result_entry)
logger.info(" new_command_run_result_entry response %s" % response)
result_id += 1
return validated_data
Я неправильно десериализовал данные и поэтому столкнулся с несколькими проблемами. возвращение validated_data исправило все ошибки, и теперь я могу публиковать () данные для нескольких моделей через один API.
Для публикации нескольких полезных нагрузок в одном вызове API добавлены строки ниже в ReceiptLogViewSet
def get_serializer(self, *args, **kwargs):
if "data" in kwargs:
data = kwargs["data"]
if isinstance(data, list):
kwargs["many"] = True
return super(ReceiptLogViewSet, self).get_serializer(*args, **kwargs)
Ссылка: Среда отдыха Django не может работать с несколькими объектами в наборе моделей
У меня есть та же проблема: я создаю альпийское основанное изображение докера, и когда я хочу завихриться к веб-сайту моей организации, эта ошибка появляется. Для решения его я должен получить сертификат CA своей компании, затем, я должен добавить его к сертификатам CA моего изображения.
CA OpenSSL связывать сертификаты с веб-сайтом:
openssl s_client -showcerts -servername my.company.website.org -connect my.company.website.org:443
Это произведет что-то как:
CONNECTED(00000005)
depth=2 CN = UbisoftRootCA
verify error:num=19:self signed certificate in certificate chain
...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
...
Получают последний сертификат (содержание между -----BEGIN CERTIFICATE-----
и
-----END CERTIFICATE-----
включенные разметки) и сохраняют его в файл (mycompanyRootCA.crt, например)
Затем когда Вы создадите свое изображение докера из альпийского, сделайте следующее:
FROM alpine
RUN apk add ca-certificates curl
COPY mycompanyRootCA.crt /usr/local/share/ca-certificates/mycompanyRootCA.crt
RUN update-ca-certificates
Ваше изображение будет теперь работать правильно! \o/
Кажется, ваш curl указывает на несуществующий файл с сертификатами CA или аналогичным.
Первичную ссылку на сертификаты CA с curl см .: https://curl.haxx.se/docs/sslcerts.html