Fix raising on nullable fields part of UniqueConstraint by browniebroke · Pull Request #9531 · encode/django-rest-framework (original) (raw)

Here is a (minimal???) reproducer:

def test_tba(): class TestModel(models.Model): field_1 = models.IntegerField(null=True) field_2 = models.IntegerField(null=True)

    class Meta:
        unique_together = (("field_1", "field_2"),)

class TestSerializer(serializers.ModelSerializer):
    field_1 = serializers.SerializerMethodField()

    def get_field_1(self) -> str:
        return "TEST"

    class Meta:
        model = TestModel
        fields = ["field_1", "field_2"]

fields = TestSerializer().fields
assert isinstance(fields["field_1"], serializers.SerializerMethodField)
    assert isinstance(fields["field_1"], serializers.SerializerMethodField)
E   AssertionError: assert False
E    +  where False = isinstance(HiddenField(default=None), <class 'rest_framework.fields.SerializerMethodField'>)
E    +    where <class 'rest_framework.fields.SerializerMethodField'> = serializers.SerializerMethodField