簡體   English   中英

在 Django 中處理某些 CRUD 異常的正確方法是什么?

[英]What is the propper way to handle certain CRUD exceptions in Django

我有這些模型。

class Brand(models.Model):
    account = models.ForeignKey(Account, on_delete=models.CASCADE, null=False)
    name = models.CharField(max_length=100, null=False, blank=False)


class Ingredient(models.Model):
    account = models.ForeignKey(Account, on_delete=models.CASCADE, null=False)
    brand = models.ForeignKey(Brand, on_delete=models.CASCADE, null=False)
    name = models.CharField(max_length=100, null=False, blank=False)
    cost = models.DecimalField(max_digits=14, decimal_places=2, null=False)

    class Meta:
        unique_together = ['account', 'brand', 'name']

因此,有時可能會重復使用同一品牌和帳戶的名稱。 我應該在視圖和表單中處理這些約束異常嗎? 什么是更干凈的方法呢? Django 真的是多才多藝,你可以用許多不同的方式做事。

為了干凈的方式,將表單創建為ModelForm ModelForm支持處理模型字段的唯一性。 參考https://docs.djangoproject.com/en/3.0/topics/forms/modelforms/#overriding-the-clean-method

如果使用Form類,請使用 clean() 函數處理唯一性異常。

暫無
暫無

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

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