限制django模型条目的最佳方法是什么

时间:2017-10-16 13:24:24

标签: django django-models django-views

我的模型EventsForeignKeyUsers。限制用户仅发布一个事件的最佳方法是什么。在模型中,在视图中还是两者兼而有之?

我已在settings.py中设置了一个变量,因为在某些时候用户可以增加他们的"配额"事件是OneToOneField不是一个选项。

修改

我忘了提及默认设置为Users

我的逻辑是这样的: 我有两种类型的用户。一种只能在Events中有一个条目的类型,但在某些时候,它们可以增加其配额#39;并将允许根据default + increased quota输入更多活动。

其他类型的用户可以根据需要在Events中拥有尽可能多的条目。

我认为在Users表上设置限制比在Events上设置限制更合理。我错了吗?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用pre_save信号来验证事件计数。

我将字段编号添加到事件表和唯一键(user_id,number)

pre_save从事件中获取最后一个数字,并将其与quota进行比较,如果最后一个数字大于quote - 引发错误

唯一索引需要确保两个事件不会平行保存