我使用get_absolute_url方法获取动态查询的url,但是当显示链接时,它只显示第一个参数而不是get_absolute_url方法中的第二个参数。它只在我使用模型的ForeignKey作为第一个参数时才这样做。以下是代码。
class Topic(models.Model):
topic_id = models.AutoField(primary_key=True)
forum_id = models.ForeignKey(Forum)
topic_title = models.CharField(max_length=400)
topic_date_time = models.DateTimeField(auto_now_add=True)
topic_user_id = models.IntegerField()
topic_views = models.IntegerField(default=0)
topic_replies = models.IntegerField(default=0)
topic_is_locked = models.BooleanField(default=False)
topic_is_sticky = models.BooleanField(default=False)
def __unicode__(self):
return '%s' % _(u'self.topic_title')
def get_absolute_url(self):
**return '/forums/%i/%i/' % (self.forum_id, self.topic_id)**
我该如何解决这个问题?谢谢!
答案 0 :(得分:1)
def get_absolute_url(self):
return '/forums/%s/%s/' % (str(self.forum_id.pk), self.topic_id)
编辑:jerzyk评论提到了其他一些观点:
将@permalink与get_absolute_url一起使用并使用视图和参数反转url,这样您就不必对url进行硬编码。
使用_id代替.pk
def get_absolute_url(self):
return '/forums/%s/%s/' % (self.forum_id_id, self.topic_id)