Django==1.5.5
djangorestframework==2.3.8
I have a model with a Foreignkey:
class Role(models.Model):
name = models.CharField("Name", unique=True)
def __unicode__(self):
return unicode(_(self.name))
class Worker(models.Model):
name = models.CharField("Name")
role = models.ForeignKey(Role, default=1)
I add a REST api to this model:
class WorkerSerializer(serializers.ModelSerializer):
role = serializers.PrimaryKeyRelatedField(required=False, read_only=False)
class Meta:
model = Worker
class WorkerAPIList(generics.ListCreateAPIView):
model = Worker
serializer_class = WorkerSerializer
When I create an new worker with a POST request with no role given, it can't pick the default value in the model and return an error:
ValueError: Cannot assign None: "Worker.role" does not allow null values.
Any help would be appreciated.
Thanks
NB: I use PrimaryKeyRelatedField
because Role.name
field is translated by django-dbgettext
, so I can't use it in REST API.
Edit: a row with id=1 in Role table already exists.