我在模型文件Add_cat
和Add_prod
中有兩個類。通過第一個類創建類別,並通過第二個類創建書名,作者,價格和圖像。我在我的第二課中將類別作爲外鍵,然後爲add_prod.Through模板創建了一些記錄。我創建了一個用於刪除所選類別的按鈕。如果所選類別包含記錄,我們不能刪除它,因爲我使用了ondelete = models.PROTECT ,現在如果我嘗試刪除包含add_prod表中的記錄的類別,django會給我一個這樣的異常,("Cannot delete some instances of model 'Add_cat' because they are referenced through a protected foreign key: 'Add_prod.cat'", [<Add_prod: Add_prod object>])
。是否可以創建自定義異常消息而不是顯示默認異常?如何在django中爲on_delete = models.PROTECT創建自定義異常消息
Models.py,
class Add_cat(models.Model):
category = models.CharField("Name",max_length=25,unique=True,error_messages={'unique':"This category already exists"})
def __unicode__(self):
return u'{0}'.format(self.category)
class Add_prod(models.Model):
book = models.CharField("Book Name",max_length=40)
author = models.CharField("Author",max_length=30)
price = models.PositiveIntegerField("Price")
image = models.ImageField(upload_to='images',null=True)
cat = models.ForeignKey(Add_cat,on_delete=models.PROTECT)
Views.py,
def del_cat(request,pk):
query = Add_cat.objects.get(pk=pk)
query.delete()
messages.add_message(request, messages.INFO, 'Category Deleted')
return redirect("add_cat")
在我的模板文件刪除按鈕,
<button onclick="return confirm('Are you sure want to delete?');"><a href="{% url 'del_prod' pk=i.pk %}">Delete</a></button>
感謝它的工作 – Bhanukiran
很高興能有幫助 – e4c5