【发布时间】:2013-08-16 19:24:17
【问题描述】:
我有以下型号:
class Poster(models.Model)
user = models.OneToOneField(User, primary=True)
userpicture = models.CharField(max_length = 128 =True)
class Posts(models.Model)
poster = models.ForeignKey(Poster, related_name = 'post_owner')
url = models.CharField(max_length = 128)
time = models.DateTimeField(auto_now_add=True)
class Comment(models.Model):
user = models.ForeignKey(Poster)
post = models.ForeignKey(Posts)
time = models.DateTimeField(auto_now_add=True)
comment = models.CharField(max_length=140)
发帖者可以发帖,其他发帖者可以对该帖子发表评论。有点像博客的运作方式。我想让帖子所有者可以选择删除他自己的 cmets 以及他帖子上其他海报的 cmets。
我该怎么做?
我目前正在使用 Django Tastypie。这是我目前的资源:
class DeleteComment(ModelResource):
class Meta:
queryset = Comment.objects.all()
allowed_methods = ['delete']
resource_name = 'comment-delete'
excludes = ['id', 'comment', 'post', 'time']
authorization = Authorization()
authentication = BasicAuthentication()
include_resource_uri = False
always_return_data = True
但是这有效!这允许任何用户删除任何评论,即使它不是他们自己的,这不好!怎么样?
只需发送 DELETE 请求到:myapp.com:8000/v1/posts/comment-delete/8/ 即可删除 评论 id 为 8 的strong> 对象。这是设置失败的地方。
我需要一种方法,以便只有帖子的帖子所有者才能删除他的 cmets 和他帖子上其他人的 cmets。
【问题讨论】: