簡體   English   中英

Django CharField不應接受空值

[英]Django CharField accepting empty values when it shouldn't

我有以下模型:

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

我期望這種模型可以阻止沒有client_id的記錄,但是我完全不明白為什么我可以使用Django shell( python manage.py shell_plus )在沒有client_id的情況下創建ClientDebt。

將其更改為CharField(max_length=255, null=False, blank=False)並嘗試創建並執行新遷移也沒有用,因為Django未檢測到任何更改。 我在以前的遷移中沒有看到默認值,但似乎在字段中記錄了“”(空字符串)。

誰能告訴我發生了什么事? 為什么我的模型接受空值/空白值? 這可能是Django中的錯誤嗎? 我正在使用Django 2.2.1版

blank僅用於表單驗證。 如果您使用空值創建記錄,則需要編寫一些自定義檢查來防止這種情況。

看看這個答案

class ClientDebt(models.Model):
    client_id = models.CharField(max_length=255, blank=False, default=None)
    ...
  • blank將阻止在模型中提供空字符串
  • default=None在使用group = Group()類的名稱時會將name設置為None,從而在調用save時引發異常

另外,您可能想看看MinLengthValidator

您可以在字段中設置default = ''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM