title: DRF use field-value instead of default (pk) in POST request
body: <p>Trying send valid POST request.</p>
  
  <p>It's works when i send like this:</p>
  
  <pre><code>{
    "name":"but",
    "sklad":1
  }
  </code></pre>
  
  <p>Response is something like this, all is valid:</p>
  
  <pre><code>{
    "name": "but",
    "getsklad": "fence"
  }
  </code></pre>
  
  <p>But when I'm trying send this, with 'fence':</p>
  
  <pre><code>{
    "name":"but",
    "sklad":"fence"
  }
  </code></pre>
  
  <p>Got error:</p>
  
  <pre><code>Invalid type. The primary key value was expected, str was received.
  </code></pre>
  
  <p>Have this piece of code in models.py:</p>
  
  <pre><code>class Sklad(models.Model):
      storages = (
          ('fence', 'Забор'),
          ('sett', 'Тротуарка'),
      )
      storage = models.CharField(
          max_length=10,
          choices=storages, 
          help_text='Name of storage',
          default='sett'
      )
  
  class Zabor(models.Model):
      sklad = models.ForeignKey(Sklad, on_delete=models.CASCADE)
      name = models.CharField(max_length=10)
      ...
  </code></pre>
  
  <p>This in serializers.py:</p>
  
  <pre><code>class ZaborPostSerializer(serializers.ModelSerializer):
      class Meta:
          model = Zabor
          fields = ( 
                ...
              'name',
              'sklad',
          )
  </code></pre>
  
  <p>And Views.py part:</p>
  
  <pre><code>class ZaborView(APIView):
      def post(self, request):
          serializer = ZaborPostSerializer(data=request.data)
          if serializer.is_valid():
              serializer.save()
              return Response({'status': 'Success'})
          else:
              return Response({'status': 'Failed'})
  </code></pre>
  
  <p>I know what when i write '1' in request, this means 'pk'. But how I can send name rather than the id/pk?</p>
  
  <p>I am beginner. So don't kick me hard for stupid questions)</p>