【问题标题】:need help to save different unique date in django需要帮助在 django 中保存不同的唯一日期
【发布时间】:2020-01-05 09:17:39
【问题描述】:

我正在使用 django rest-framework 创建一个应用程序来记录测量日期。我必须对日期字段进行验证,例如,如果数据库中已经输入了一个日期,应用程序应该避免输入数据库中已经存在的相同日期.需要帮助才能做到这一点

【问题讨论】:

  • 将该字段标记为unique=True
  • 添加新日期时会出现新问题。用户必须每月保存日期
  • @WillemVanOnsem 我假设 OP 意味着每个用户都是唯一的,也许 class Meta: unique_together = (('user', 'date'),) 更合适

标签: python django django-models django-rest-framework


【解决方案1】:

您可以使用UniqueConstraint [Django-doc],其中包含userdate

from django.conf import settings

class MyModel(models.Model):
    date = models.DateField()
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE
    )

    class Meta:
        constraints = [
            UniqueConstraint(fields=['user', 'date'], name='unique_date_per_user')
        ]

之前可以使用unique_together [Django-doc]

from django.conf import settings

class MyModel(models.Model):
    date = models.DateField()
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE
    )

    class Meta:
        unique_together=(('user', 'date'),)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-01
    • 2014-09-22
    • 2023-03-24
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多