title: Django REST Framework - Serializer don't see field
body: <p>I want create User, which hold Foreign Key to his Country.
  Obviously I want to make it required field.</p>
  
  <p>But when I send POST request without 'country' field, DRF Serializer doesn't throw an error.</p>
  
  <p>Nowhere in the code have I allowed the field to be empty, it's the same as the rest.</p>
  
  <p>I took a step further, and in the <code>create()</code> method of my <code>ModelViewSet</code> I decided to print <code>serializer.validated_data</code></p>
  
  <pre class="lang-py prettyprint-override"><code>class UserViewSet(ModelViewSet):
      serializer_class = UserSerializer
      queryset = User.objects.all()
      permission_classes = []
  
      def create(self, request, format=None):
          serializer = self.get_serializer(data=request.data)
  
          if serializer.is_valid():
              print(serializer.data)
  </code></pre>
  
  <p>I send following POST request:</p>
  
  <p><a href="https://i.stack.imgur.com/6urxm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/6urxm.png" alt="enter image description here"></a></p>
  
  <p>And my <code>serializer.validated_data</code> value was:</p>
  
  <pre><code>OrderedDict([('password', 'test1231112'), ('first_name', 'Jarosław'), ('last_name', 'Psikuta'), ('phone', '2999111331'), ('email', 'rweww@gmail.css'), ('description', 'fajny uzytkownik'), ('address', 'Mieszka 3/4'), ('date_of_birth', datetime.date(1997, 10, 13))])
  </code></pre>
  
  <p>I realised that serializer just don't see my <code>country</code> field.</p>
  
  <p>I already write some code to check if my <code>country</code> field exist:</p>
  
  <pre class="lang-py prettyprint-override"><code>country_code = request.data.get('country', None)
  if not country_code:
          return Response({'country': 'This field is required'}, status=status.HTTP_400_BAD_REQUEST)
  </code></pre>
  
  <p>but I know that's wrong approach. It's additional code, and actually serializer should do that work for me.</p>
  
  <p>Here You have rest of my code:</p>
  
  <p>serializers.py</p>
  
  <pre class="lang-py prettyprint-override"><code>class UserSerializer(serializers.ModelSerializer):
  
      class Meta:
          model = User
          fields = '__all__'
          read_only_fields = ('id', 'last_login', 'is_superuser', 'is_staff', 'is_active','date_joined', 'groups', 'user_permissions')
          extra_kwargs = {
              'password': {'write_only': True}
          }
          depth = 1
  
      def create(self, validated_data):
          password = validated_data.pop('password')
          user = User(**validated_data)
          user.set_password(password)
          user.save()
          return user
  </code></pre>
  
  <p>models.py</p>
  
  <pre class="lang-py prettyprint-override"><code>class User(AbstractUser):
      EMPLOYEE_TYPES = [
          ('R', 'Regular'),
          ('S', 'Specialist')
      ]
      username_validator = None
      username = None
      first_name = models.CharField(_('first name'), max_length=30)
      last_name = models.CharField(_('last name'), max_length=150)
      phone = models.CharField(max_length=15, unique=True)
      employee_type = models.CharField(max_length=1, choices=EMPLOYEE_TYPES, default='R')
      email = models.EmailField(_('email address'), unique=True, max_length=255)
      description = models.CharField(blank=True, max_length=500, default='')
      address = models.CharField(max_length=100)
      date_of_birth = models.DateField(null=True)
      country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='users')
  
      USERNAME_FIELD = 'email'
      REQUIRED_FIELDS = ['first_name', 'last_name', 'date_of_birth', 'address', 'phone', 'country']
  </code></pre>