我正在尝试创建一个评论应用程序,以便在需要它的任何地方使用它,所以我想我必须使用它ContentType
来将评论附加到我的项目的不同模型上。所以在这里:
我的model
:
class Comment(models.Model):
user = models.ForeignKey(User, blank=True, null=True)
text = models.TextField((u'Текст комментария'))
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
我的view
:
def add_comment(request):
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
new_comment = Comment()
new_comment.text = request.POST['text']
new_comment.content_type = ???
new_comment.object_id = request.POST['object_id']
new_comment.user = request.user
new_comment.save()
return HttpResponseRedirect(request.META['HTTP_REFERER'])
else: ...
如何获得我正在使用的当前模型的内容类型?我有应用程序 NEWS 和模型帖子,所以我想评论我的帖子。
我知道我可以使用ContentType.objects.get(app_label="news", model="post")
,但我得到了确切的价值,所以这样我的评论应用程序就不会是多用途的。
PS抱歉英语不好。