Reputation: 628
I have model for my comments:
class Comment(models.Model):
body = models.CharField(max_length=255, verbose_name="comment")
message = models.ForeignKey(Message, on_delete=models.CASCADE, related_name="comments", verbose_name="message")
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="author")
parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children', verbose_name='parent', default=None)
posted = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="posted")
edited = models.DateTimeField(auto_now=True, auto_now_add=False, verbose_name="edited")
def __str__(self):
return self.body
def get_create_url(self):
return reverse('wall:add-comment', kwargs={'id': self.message.id, 'pk': self.parent.id})
def get_update_url(self):
return reverse('wall:edit-comment', kwargs={'id': self.id})
I need to get an id for parent.id if parent is none.
Upvotes: 0
Views: 229
Reputation: 88569
First of all, you can't access the parent_id
if there is no parent
. (You can't drive your own car if you don't have one)
If you want to return some data if parent
is None
, try this
comment = Comment.objects.get(id=instance_id)
if not comment.parent:
return comment.id
return comment.parent_id
This will return parent_id
if it has a parent
else it will return it's own id
Upvotes: 2