我有评论和帖子模型。
我希望网址以@ post // comment //
的形式出现但我不确定如何设置它。
我的帖子模型有这个:
@python_2_unicode_compatible
class Post(models.Model):
...
slug = models.SlugField(unique=True)
@models.permalink
def get_absolute_url(self):
return 'appname:post', (self.slug,)
我的评论模型可以:
@python_2_unicode_compatible
class Comment(models.Model):
...
slug = models.SlugField(unique=True)
@models.permalink
def get_absolute_url(self):
return 'appname:post:comment', (self.slug,)
或者我如何连接get_absolute_url以便网址以我提到的方式出现?还是有更好的方法?
答案 0 :(得分:0)
@python_2_unicode_compatible
class Comment(models.Model):
title = models.CharField(max_length=100)
body = models.CharField(max_length=1000)
creation_date = models.DateTimeField(auto_now_add=True)
last_updated = models.DateTimeField()
author = models.ForeignKey(Person, related_name='authors')
project = models.ForeignKey(Project, related_name='comments', null=True, blank=True)
task = models.ForeignKey(Task, related_name='comments', null=True, blank=True)
slug = models.SlugField(unique=True)
def __str__(self):
return self.title
@models.permalink
def get_absolute_url(self):
if self.project:
return ('comment', (), {
'project': self.task.id,
'slug': self.slug,
'id': self.id,
})
elif self.task:
return ('comment', (), {
'project': self.task.project.id,
'task': self.task.id,
'slug': self.slug,
'id': self.id,
})
然后连接urls.py以使用名为'评论'
的网址的所有必要ID