Django中使用ForeignKey参数的get_absolute_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 个回答
1
def get_absolute_url(self):
return '/forums/%s/%s/' % (str(self.forum_id.pk), self.topic_id)
编辑:jerzyk 的评论提到了以下几点:
使用 @permalink 和 get_absolute_url,然后通过视图和参数反向生成网址,这样你就不需要把网址写死在代码里。
使用 _id 而不是 .pk
def get_absolute_url(self): return '/forums/%s/%s/' % (self.forum_id_id, self.topic_id)