Skip to content

Serializer set required to False for model BooleanField() #5664

@zhangfand

Description

@zhangfand

Checklist

  • I have verified that that issue exists against the master branch of Django REST framework.
  • I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
  • This is not a usage question. (Those should be directed to the discussion group instead.)
  • This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
  • I have reduced the issue to the simplest possible case.
  • I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)

Steps to reproduce

  1. create a simple model models.py
from django.db import models


class TestModel(models.Model):
    flag = models.BooleanField()
    integer = models.IntegerField()
  1. create a simple serializer serializers.py
from rest_framework import serializers
from .models import TestModel


class TestSerializer(serializers.ModelSerializer):

    class Meta:
        model = TestModel
        fields = 'flag', 'integer'
  1. run these commands in django shell
from <app-name>.models import TestModel
from <app-name>.serializers import TestSerializer

serializer = TestSerializer()
print(repr(serializer))

it shows:

TestSerializer():
    flag = BooleanField(required=False)
    integer = IntegerField()

Expected behavior

I am expecting flag = BooleanField()

Actual behavior

flag is set to required=False.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions