Case insensitive unique model fields in Django?

后端 未结 7 2104
我寻月下人不归
我寻月下人不归 2020-12-02 11:23

I have basically a username is unique (case insensitive), but the case matters when displaying as provided by the user.

I have the following requirements:

7条回答
  •  -上瘾入骨i
    2020-12-02 11:41

    You can also override "get_prep_value" by Django Models Field

    class LowerCaseField:
        def get_prep_value(self, value):
            if isinstance(value, Promise):
                value = value._proxy____cast()
            if value:
                value = value.strip().lower()
            return value
    
    
    class LCSlugField(LowerCaseField, models.SlugField):
        pass
    
    
    class LCEmailField(LowerCaseField, models.EmailField):
        pass
    
    email = LCEmailField(max_length=255, unique=True)
    

提交回复
热议问题