создание post api для множества полей, придающих значение полям в модели - PullRequest
0 голосов
/ 29 апреля 2019

Я работаю над проектом, это «данные компании» для записи информации о сотрудниках. У меня есть одно поле "manytomany" с именем "skill", и я хочу присвоить ему значение от почтальона с помощью "post request".

def create_employee(cls, email, password, first_name, last_name, mobile_number, dob, nationality, skill):
    user = User.objects.create(first_name=first_name, last_name=last_name, email=email, username=email)
    if not password:
        password = User.objects.make_random_password()
    user.set_password(password)
    user.save()
    dob_obj = datetime.datetime.strptime(dob, "%Y-%m-%d").date()
    emp = cls.objects.create(user=user, email=email, mobile_number=mobile_number, dob=dob_obj,
                             nationality=nationality, skill=skill.set())
    return emp

views.py

Класс RegistrationView (APIView): access_classes = () authentication_classes = ()

def post(self, request):
    email = request.data.get('email', '')
    password = request.data.get('password', '')
    first_name = request.data.get('first_name', '')
    last_name = request.data.get('last_name', '')
    mobile_number = request.data.get('mobile_number', '')
    dob = request.data.get('dob', '')
    nationality = request.data.get('nationality', '')
    skill = request.data.get('skill', '')

    if not email:
        return Response({"success": False, "message": "An error occurred"},status=status.HTTP_400_BAD_REQUEST)
    try:
        if User.objects.filter(email=email).exists():
            return Response({"success": False, "message": "Email ID already registered. Please login"},
                            status=status.HTTP_400_BAD_REQUEST)
        employee = Employee.create_employee(email, password, first_name, last_name,mobile_number, dob, nationality, skill)

    except:
        return Response({"success": False, "message": "An error occurred. Please try again"},
                        status=status.HTTP_400_BAD_REQUEST)
    return Response({"success": True, "profile": employee.get_profile(),
                     "token": employee.get_token()
                     })

ожидается: значение навыка должно быть установлено при регистрации сотрудника. фактическое: оно не добавляется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...