Как принять полезную нагрузку Array не в таблице моделей в DjangoRestFramework [Python3.6] - PullRequest
0 голосов
/ 27 августа 2018

Когда был выполнен приведенный ниже код, я получил метод 'create', не реализованный с ошибкой. Как создать метод create в модели, в которой нет поля кандидата. Какой лучший способ справиться с этим?

Данные полезной нагрузки (как в POSTMAN):

    {
      "applicants": [{"id": 1, "status": 2}, {"id": 12, "status": 3}, 
      {"id": 11, "status": 2}]
    }

Мой файл serializers.py:

class StringListField(serializers.ListField):
    applicants = serializers.CharField

class UpdateApplicantSerializer(serializers.Serializer):
    applicants = StringListField()

Файл Models.py:

class Applicant(models.Model):

    APPLICATION_STATUS = (
      (1, 'Pending'),
      (2, 'Accept'),
      (3, 'Reject'),
    )

    first_name = models.CharField(max_length=200, blank=False, 
    null=False)

    last_name = models.CharField(max_length=200, blank=False, 
    null=False)

    email = models.EmailField(max_length=200, blank=False, null=False, 
    unique=True)

    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', 
    message="Phone number must be entered in the format: '+999999999'. 
    Up to 15 digits allowed.")

    phone_number = models.CharField(validators=[phone_regex], 
    max_length=17, blank=True, null=False, unique=True) # validators 
    should be a list

    linkedin_url = models.URLField(max_length=255, unique=True) #make 
    sure diff users cant use two same profile

    twitter_url = models.URLField(max_length=255, unique=True) #make 
    sure diff users cant use two same profile

    articles = ArrayField(models.URLField(), blank=False, null=False, 
    unique=True, size=3)

    country = models.ForeignKey(Country, on_delete=models.CASCADE, 
    blank=False, related_name="applicant")

    category = models.ForeignKey(Category, on_delete=models.CASCADE, 
    related_name="applicant", blank=False)

    status = models.CharField(max_length=200, 
      choices=APPLICATION_STATUS, default=1)
...