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[0]変更する最初の は 2 番目のものと同じではありません。2 番目のものはデータベースから再度取得されます。これはうまくいきます:

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 に答える
1

値を保存する必要があります

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