Я пытаюсь создать приложение для комментариев, чтобы оно использовалось везде, где мне это нужно, поэтому мне кажется, что я должен использовать ContentType
, чтобы прикреплять комментарии к различным моделям моего проекта.
так вот:
my 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')
my 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 и модель Post в нем, поэтому я хочу комментировать мои сообщения.
Я знаю, что могу использовать ContentType.objects.get(app_label="news", model="post")
, но я получаю точное значение, поэтому мое приложение для комментариев не будет многоцелевым.
P.S. извините за плохой английский.