0

我正在尝试编辑现有评论(即用新评论替换旧评论)。我的评论应用是 django.contrib.comments。

new_comment = form.cleaned_data['comment']

#all of the comments for this particular review
comments = Comment.objects.for_model(Review).filter(object_pk=review_id)

print comments[0].comment
#'old comment'

comments[0].comment = new_comment

print comments[0].comment
#'old comment' is still printed

为什么评论没有被新评论更新?

谢谢你。

编辑:调用comments[0].save() 然后print comments[0].comment,仍然打印'old comment'

4

2 回答 2

1

您需要保存该值

comments = comments[0]    
comments.comment = new_comment
comments.save()
于 2012-09-24T11:25:50.727 回答
1

这与评论无关。只是每次切片时都会重新评估查询集。因此comments[0],您更改的第一个与第二个不同 - 第二个是从数据库中再次获取的。这会起作用:

comments = Comment.objects.for_model(Review).filter(object_pk=review_id)
comment = comments[0]
comment.comment = new_comment

现在您可以根据需要保存或打印comment

于 2012-09-24T12:30:38.607 回答