相关疑难解决方法(0)

如何在Django中创建一个非空的CharField?

我有一个简单的模型,看起来像这样:

class Group(models.Model):
    name = models.CharField(max_length = 100, blank=False)
Run Code Online (Sandbox Code Playgroud)

我希望这会抛出完整性错误,但它不会:

group = Group() # name is an empty string here
group.save()
Run Code Online (Sandbox Code Playgroud)

如何确保name变量设置为非空?即使数据库拒绝任何保存空字符串的尝试?

django django-models

23
推荐指数
4
解决办法
9641
查看次数

Django自定义保存模型

我正在尝试在django的保存模型中执行基本日期计算,请参阅下面的代码:

  class Purchase(models.Model):
    purchase_date = models.DateField()
    purchase_place = models.CharField(verbose_name='Place of Purchase', max_length=255)
    purchaseCategory = models.ForeignKey(PurchaseCategory, verbose_name='Purchase Category')
    cost = models.DecimalField(max_digits=11, decimal_places=2)
    warranty_period_number = models.IntegerField()
    warranty_period_type = models.CharField(max_length=255, choices=(('m', 'Month(s)'), ('y', 'Year(s)')))
    warranty_end_date = models.DateField(editable=False)
    scan = models.CharField(max_length=255)
    alerts = models.BooleanField(verbose_name='Receive Email Alerts?')
    user = models.ForeignKey('auth.User', editable=False)
    created = models.DateTimeField(editable=False, auto_now_add=True)
    modified = models.DateTimeField(editable=False, auto_now=True)

    #custom save model
    def save(self, *args, **kwargs):
        #figure out warranty end date
        if self.warranty_period_type == 'm':
            self.warranty_end_date = self.purchase_date + self.purchase_date.timedelta(months=self.warranty_period_number)
        else:
            self.warranty_end_date = self.purchase_date + …
Run Code Online (Sandbox Code Playgroud)

python django

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

django ×2

django-models ×1

python ×1