Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django CharField accepting empty values when it shouldn't

I have the following model:

class ClientDebt(models.Model):
    client_id = models.CharField(max_length=255)
    ...

I was expecting this model to prevent records without a client_id, but I quite don't understand why I can create a ClientDebt without a client_id using a django shell (python manage.py shell_plus).

Changing it to CharField(max_length=255, null=False, blank=False) and trying to create+execute new migrations also didn't work, as Django did not detected any changes. There is no default value from what I could see in previous migrations, but it seems to be recording "" (empty string) in the field.

Can anybody tell me what is going on? Why is my model accepting null/blank values? Can this be a bug in Django? I'm using Django version 2.2.1

like image 772
Vini.g.fer Avatar asked Oct 21 '25 15:10

Vini.g.fer


1 Answers

blank is only used with form validation. If you are having records created with empty values you'll need to write some custom checks to prevent that.

like image 178
schillingt Avatar answered Oct 23 '25 03:10

schillingt