我有一个django项目,我正在使用tastypie将我的应用程序转换为基于REST的API。
我让用户上传照片,然后其他注册用户可以喜欢它们。我想阻止一个人不止一次喜欢一张照片。
我知道使用视图或tastypie特定代码我可以添加功能来检查用户是否已经喜欢照片以及他们是否已经不增加计数。但我想知道是否有办法在模型中进行此检查(如果这样做好或坏)
由于
答案 0 :(得分:0)
我希望你有喜欢的模特吗?如果没有,请为M2M用户创建intermediary model< - >照片关系。接下来,添加一个简单的unique constraint:
unique_together = ("user", "photo")
它在数据库级别强制执行,因此它会为您提供良好的性能。
如果你不想要一个保持喜欢的专用模型,不幸的是我无法帮助 - 没有其他优雅的方法可以保存一些用户喜欢某些照片的事实。最后你应该对M2M感到满意,因为之后可以轻松添加的额外功能:不像照片,显示谁喜欢特定照片,何时发生最喜欢,添加一定程度的“喜欢”等等。
祝你好运!