【发布时间】:2017-09-26 03:51:51
【问题描述】:
如何限制用户在数据库中保存对象
class model_name(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True)
user = models.ForeignKey(User)
foo = models.CharField(max_length=51)
我想将 foo 限制为每个用户仅 10 个条目
我使用 mysql 作为后端
【问题讨论】:
-
如果你使用 postgre 作为后端数据库,你可以使用像 ArrayFields 这样的东西。而对于这些数组,cou可以控制长度、内容等。
-
我使用 mysql 作为后端
-
是的,已经注意到了,我的错。也许您可以根据您的要求等切换底层数据库。您始终可以选择执行代码before a model field becomes saved,所以这对您来说也可能是一个有用的技巧。
-
有什么办法可以在forms.py中验证
-
如果你想在form.py中实现,我想最直观的方法是在用户插入/更新foo之前检查数据库中的foo数量。如果记录数>10,则向用户响应错误消息。
标签: python mysql django django-models django-mysql