[英]Not null constraint failed django with clean function
我收到了您在標題中看到的錯誤。 我的目的
我做了 1 號,但是當談到 2 號時,我得到了標題中的錯誤。 例子
NOT NULL 約束失敗:appearance_banner.banner_button_url models.py
class banner(models.Model):
banner_name = models.CharField(max_length=200,primary_key=True)
banner_image = models.ImageField(("Banner resmi"), upload_to="media/images/site/banner",help_text="1770x550 boyutunda resim önerilmektedir.")
banner_title = models.CharField(max_length=100,null=True,blank=True)
banner_title_activate = models.BooleanField(default=True)
banner_description = models.TextField(null=True,blank=True)
banner_description_activate = models.BooleanField(default=True)
banner_button_title = models.CharField(max_length=50,null=True,blank=True)
banner_button_url = models.SlugField(null=True,blank=True)
banner_button_activate = models.BooleanField(default=True)
banner_button2_title = models.CharField(max_length=50,null=True,blank=True)
banner_button2_url = models.SlugField(null=True,blank=True)
banner_button2_activate = models.BooleanField(default=True)
banner_order = models.IntegerField(editable=True,default=1,blank=False,null=False,verbose_name="Sıra")
banner_status = models.CharField(max_length=100,choices=STATUS,verbose_name="Banner Statüsü")
def __str__(self):
return self.banner_title
def delete(self, *args, **kwargs):
self.banner_image.delete()
super(banner, self).delete(*args, **kwargs)
def clean(self):
# if (self.banner_title_activate):
# if not (self.banner_title):
# raise ValidationError({"banner_title":"Eğer bu bölüm aktifse buton title dolu olmalı.",})
if not (self.banner_button_title and self.banner_button_url and self.banner_button_activate):
print("selam")
print(self.banner_button_url)
if None == self.banner_button_title and None == self.banner_button_url and False != self.banner_button_activate:
print("selam 3")
raise ValidationError({"banner_button_url":"Eğera bu bölüm aktifse buton url dolu olmalı.","banner_button_title":"Eğer bu bölüm aktifse button title dolu olmalı."})
elif (None == self.banner_button_url and True == self.banner_button_activate):
print("selam 2")
raise ValidationError({"banner_button_url":"Eğer bu bölüm aktifse button url dolu olmalı."})
elif None == (self.banner_button_title) and False != self.banner_button_activate:
raise ValidationError({"banner_button_title":"Eğer bu bölüm aktifse button title dolu olmalı."})
else:
print("--------------")
print(self.banner_button_url)
我解決了這個問題。 我認為我的錯誤非常簡單。 python manage.py makemigrations python manage.py migrate 依次運行命令。 我希望它也適合你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.