Django get_absolute_url с параметром ForeignKey не работает - PullRequest
0 голосов
/ 16 апреля 2011

Я использую метод 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 Ответ

1 голос
/ 16 апреля 2011
def get_absolute_url(self):
    return '/forums/%s/%s/' % (str(self.forum_id.pk), self.topic_id)

edit: 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)
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...