請教各位大大,為何我在使用sql直接新增資料時會說我的欄位violates not-null constraint
我在django的model欄位中設置的是auto_now_add,使用shell時可以成功新增,使用sql新增就會出錯,是model的欄位設計錯誤嗎,還是下sql時有另外的寫法?
錯誤訊息:
這邊是我的model
from django.db import models
# Create your models here.
class Author(models.Model):
name = models.CharField(max_length=20)
def __str__(self) -> str:
return self.name
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
create_at = models.DateTimeField(auto_now_add=True)
def __str__(self) -> str:
return self.name
只接下命令跟透過model下命令當然會不一樣了。
透過model下命令。會自動你將日期的欄位資料帶入。
但如果你是手動下命令,你就得自行將日期也一起建立才行。
django我不熟,但其實在其它相關語言上。也曾經碰過有人也跟你一樣的問題。
大多數都是因為,使用的DB控制。並非是model而是db控制。
所以導致了原本model應用的東西,如你的auto_now_add。其實並沒有發揮作用。
很多人很常沒搞懂ORM還是DB QUERY。甚至會將其視為一樣的東西。
其實還是有差別的。