2014-10-20 11 views
0

У меня есть эта модель:get_absolute_url() Джанго документы пример возвращает ошибку синтаксиса

class Invite(models.Model): 
    user = models.OneToOneField(User) 
    cookie = models.SlugField() 
    token = models.SlugField() 

    def __unicode__(self): 
     return u"%s's invite" % (self.user) 

    def get_absolute_url(self): 
     return (reverse('invite'), args=[self.token]) 

В последней строке, return (reverse('invite'), args=[self.token]), возвращает ошибку синтаксиса. Когда я удаляю часть args=, она работает нормально.

У меня есть три вопроса относительно этого:

  1. Почему arg= в этом примере, возвращающей ошибку синтаксиса в то время как Джанго Docs использует похожий пример here.

  2. Как я могу успешно войти в этот список или проверить содержимое списка, не присваивая ему имя?

  3. Нужно ли return для работы с несколькими переменными? ()? Так как im, использующий python 2.7.5, не достаточно простого ,?

Спасибо!

ответ

2

У вас есть закрывающая скобка в неправильном месте. args является аргументом reverse.

return (reverse('invite', args=[self.token])) 
+0

Спасибо. Но почему это не может быть «return (reverse (« invite »), args = [self.token])'? Разве это тоже не работает? – ApathyBear

+1

Нет, зачем это нужно? Как я уже сказал, «args» - это аргумент для обратного, что означает, что он должен находиться внутри вызывающих круглых скобок для обратного. На самом деле ваши внешние круглые скобки абсолютно ничего не делают; Я должен был удалить их в своем ответе. –

Смежные вопросы