Setup¶
Step 1 - Connecting comment model with the target model¶
In models.py add the field comments
as a GenericRelation
field to the required model.
PS: Please note that the field name must be comments
NOT comment
.
E.g. Post
model, as shown below:
from django.contrib.contenttypes.fields import GenericRelation
from comment.models import Comment
class Post(models.Model):
author = models.ForeignKey(User)
title = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
body = models.TextField()
# the field name should be comments
comments = GenericRelation(Comment)
Important
Please add a get_absolute_url
method to the model that you’re associating with the Comment
model. It is used at several places.
from django.urls import reverse
def get_absolute_url(self):
return reverse('post_detail_url', kwargs={'slug': self.slug})
Step 2 - Adding template tags:¶
render_comments
tag uses 2 required and 1 optional arg:
- Instance of the targeted model. (Required)
- Request object. (Required)
- oauth. (optional - Default is false)