Python Django get_absolute_url与ForeignKey参数不起作用

Python Django get_absolute_url与ForeignKey参数不起作用,python,django,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 = model

我使用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)**
我怎样才能解决这个问题?谢谢

def get_absolute_url(self):
    return '/forums/%s/%s/' % (str(self.forum_id.pk), self.topic_id)
编辑:评论中提到了其他几点:

  • 将@permalink与get_absolute_url一起使用,并使用视图和参数反转url,这样就不必硬编码url

  • 使用_id而不是.pk

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

  • topic\u instance.get\u absolute\u url()
    返回的字符串具体是什么?能否同时显示url.py的相应部分?虽然使用permalink decorator反转URL()可能会更好,但我找到了问题的答案,但肯定也会对此进行研究。谢谢但这会在每次执行时生成额外的db查询,更好的ir是:'/forums/%i/%i/'%(self.forum\u id\u id,self.topic\u id),另一个故事是,这不是一个好方法,最好使用permalink装饰器