我有一个自定义管理器,它从POST请求创建一个对象 . 问题是2个manytomany参数没有传递任何信息 .

这是方法(在自定义管理器中)

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请求

POST request

这是日志

()可治疗真名癫痫治疗1传染性严重7内部服务器错误:/ conditions / 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,request)文件“/Library/Python/2.7/site-packages/django/core/handlers/base.py”,第185行,在_get_response response = wrapped_callback(request,* callback_args,** callback_kwargs)File“ /Library/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_except ion(exc)文件“/Library/Python/2.7/site-packages/rest_framework/views.py”,第437行,在handle_exception中self.raise_uncaught_exception(exc)文件“/Library/Python/2.7/site-packages/rest_framework/ views.py“,第474行,在dispatch响应中= handler(request,* args,** kwargs)文件”/Library/Python/2.7/site-packages/rest_framework/decorators.py“,第52行,在handler return func中(* args,** kwargs)在create_condition serializer.save()文件“/Users/Python2.7/site-packages/rest_framework/serializers .py“,第214行,在save 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 = conditions.models.Condition(name = kwargs ['name'],contagious = kwargs ['contagious'],treatable = kwargs ['treatable'],t reatment = kwargs ['treatment'],严重性= kwargs ['严重性'],症状= kwargs ['症状'],特殊= kwargs ['特殊'])KeyError:'症状'[19 / Feb / 2017 20:51 :11]“POST / conditions / new / condition / HTTP / 1.1”500 14989

正如您所看到的那样,2 manytomany字段甚至没有显示在日志中 .