Django get_absolute_url,ForeignKey参数不起作用

时间:2011-04-16 17:28:50

标签: python django

我使用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)**

我该如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

def get_absolute_url(self):
    return '/forums/%s/%s/' % (str(self.forum_id.pk), self.topic_id)

编辑:jerzyk评论提到了其他一些观点:

  1. 将@permalink与get_absolute_url一起使用并使用视图和参数反转url,这样您就不必对url进行硬编码。

  2. 使用_id代替.pk

    def get_absolute_url(self):
        return '/forums/%s/%s/' % (self.forum_id_id, self.topic_id)
    
相关问题