私は単純な投稿とコメントページを作成しています。これは、投稿にコメントすると、そのコメントをデータベースに保存しようとしています。 id.Butを使用してコメントが投稿された投稿のタイトルです。投稿するには、comments.post_title = header.titleを実行してPost_Commentのpost_title属性をインスタンス化しようとすると、「u'kjashdkh」を割り当てることができません: Post_Comment.post_title "は" Post "インスタンスでなければなりません。 「kjashdkh」は投稿タイトルです。djangoデータベースのブログの投稿にコメントオブジェクトを保存する
class Post(models.Model):
title= models.CharField (max_length=100)
body= models.TextField()
created=models.DateTimeField()
def __str__(self):
return self.title
class Post_Comment(models.Model):
comment= models.TextField()
post_title=models.ForeignKey(Post)
そして、私の見解は以下のとおりです。
def comment(request,pk):
header=Post.objects.get(id=pk)
comments=Post_Comment(comment=request.POST['comment'])
comments.post_title=header.title
header.delete()
comments.save()
return HttpResponseRedirect('/blog/')
エラーはかなり明確です。 'Post_title = models.ForeignKey(Post)'を 'Post'オブジェクトを期待するように設定しましたが、' CharField'または 'string 'オブジェクトである' header.title'を与えています。あなたがDjangoの外部キーがどのように機能するかについての基本的な誤解があるようです。チュートリアルを読んだことはありますか? –
ありがとうございます。私はforeignkeyを使用して少し新しいです。しかし、私はこの問題をいかに修正すべきですか? –
'comments.post_title = header'だと思いますが、次の行でブログ投稿(' header.delete() ')を削除することはできません。より正確な変数名を考慮する必要があります。ブログの投稿「ヘッダー」とそれへの参照を後で「post_title」と呼ぶと、これは非常に分かりにくいものになります。 –