我的模型Events
有ForeignKey
到Users
。限制用户仅发布一个事件的最佳方法是什么。在模型中,在视图中还是两者兼而有之?
我已在settings.py
中设置了一个变量,因为在某些时候用户可以增加他们的"配额"事件是OneToOneField
不是一个选项。
修改
我忘了提及默认设置为Users
。
我的逻辑是这样的:
我有两种类型的用户。一种只能在Events
中有一个条目的类型,但在某些时候,它们可以增加其配额#39;并将允许根据default
+ increased quota
输入更多活动。
其他类型的用户可以根据需要在Events
中拥有尽可能多的条目。
我认为在Users
表上设置限制比在Events
上设置限制更合理。我错了吗?
答案 0 :(得分:1)
我认为您可以使用pre_save信号来验证事件计数。
我将字段编号添加到事件表和唯一键(user_id,number)
pre_save
从事件中获取最后一个数字,并将其与quota
进行比较,如果最后一个数字大于quote
- 引发错误
唯一索引需要确保两个事件不会平行保存