Параметр в запросе POST не отображается в kwargs
У меня есть собственный менеджер, который создает объект из запроса POST. Проблема заключается в том, что 2 многих параметра не передают никакой информации.
Вот метод (в кастомном менеджере)
class ConditionManager(models.Manager):
use_in_migrations = True
use_for_related_fields=True
def create_condition(self, *args, **kwargs):
print(args)
for i in kwargs:
print i, kwargs[i]
condition_obj = conditions.models.Condition(name=kwargs['name'], contagious=kwargs['contagious'], treatable=kwargs['treatable'], treatment=kwargs['treatment'], severeity=kwargs['severeity'], symptoms=kwargs['symptoms'], speciality=kwargs['speciality'])
condition_obj.save()
return condition_obj
Вот сериализатор
class ConditionSerializer(serializers.ModelSerializer):
symptoms = SymptomSerializer(read_only=True, many=True)
def create(self, validated_data):
attrs = validated_data
request = self.context['request']
return Condition.new.create_condition(**attrs)
class Meta:
model = Condition
fields = ('id', 'treatment', 'name', 'contagious', 'treatable', 'treatment', 'severeity', 'symptoms')
Вот запрос POST
Вот лог
() поддается лечению Истинное имя Лечение эпилепсии 1 заразно Ложная серьезность 7 Внутренняя ошибка сервера: /condition /new/condition/ Traceback (последний вызов был последним): файл "/Library/Python/2.7/site-packages/django/core/handlers/exception.py", строка 39, во внутреннем файле ответа = get_response(запрос)"/Library/Python/2.7/site-packages/django/core/handlers/base.py", строка 187, в _get_response response = self.process_exception_by_middleware(e, запрос) Файл "/Library/Python/2.7/site-packages/django/core/handlers/base.py", строка 185, в _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/ Библиотека /Python/2.7/site-packages/django/views/decorators/csrf.py", строка 58, в файле wrapped_view возвращает view_func(*args, **kwargs) Файл"/Library/Python/2.7/site-packages/django/views/generic/base.py", строка 68, в представлении возвращает файл self.dispatch(request, *args, **kwargs) Файл"/Library/Python/2.7/site-packages/rest_framework/views.py", строка 477, в ответе на отправку = self.handle_exception(исключая) файл "/Library/Python/2.7/site-packages/rest_framework/views.py", строка 437, в handle_exception self.raise_uncaught_exception(исключая файл) "/Library/Python/2.7/site-packages/rest_framework/ views.py ", строка 474, в ответе об отправке = обработчик (запрос, * args, ** kwargs) Файл"/Library/Python/2.7/site-packages/rest_framework/decorators.py", строка 52, в обработчике возвращает функцию (* args, ** kwargs) Файл "/Users/prashantcraju/medicalrecords/conditions/views.py", строка 20, в файле create_condition serializer.save() "/Library/Python/2.7/site-packages/rest_framework/serializers.py", строка 214, в файле сохранения self.instance = self.create(validated_data)"/Users/prashantcraju/medicalrecords/conditions/serializers.py", строка 21, в файле create return Condition.new.create_condition(**attrs) Файл "/Users/prashantcraju/medicalrecords/conditions/managers.py", строка 20, в create_condition condition_obj = condition.models.Condition(name=kwargs['name'], contagious=kwargs['contagious'], Treatable=kwargs['поддается лечению'], treatment=kwargs['лечение'], серьезность = kwargs ['серьезность'], симптомы = kwargs ['симптомы'], специальность =kwargs['speciality']) KeyError: 'признаки' [19/ февраль /2017 20:51:11] "POST / условия / новые / условия / HTTP/1.1" 500 14989
Как вы можете видеть, поле 2 manytomany даже не отображается в журнале.