Как передать переменную как ARG или KWARG в моем get_success_url - PullRequest
0 голосов
/ 18 июня 2019

Я работал весь день, пытаясь передать переменную в get_success_url, чтобы показать правильную запись после обработки UpdateView.Я использую представления на основе классов, и я пытаюсь обновить запись, а затем показать соответствующую запись обновления в другом представлении.Тем не менее, когда я передаю ПК, это работает, но это не правильно.

По сути, вот код, о котором идет речь ...

def get_success_url(self):
    return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.pk })

Вышеописанное будет работать нормально и работает во многих случаях.Тем не менее, в этом случае я пытаюсь передать конкретный ПК, который не совпадает с этим конкретным обновлением.

Я пробовал что-то вроде ....

def get_success_url(self):
    return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.new_author.pk }) 

Возможно, что-то вроде ....

def get_success_url(self):
    return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.pk, 'new_author' : self.new_author.id  }) 

Будет работать?Я могу получить ПК, используя этот код, но не правильный.Я хочу сослаться на new_author.id, чтобы reverse_lazy выбирал правильный pk.

Заранее спасибо за любые мысли.

1 Ответ

0 голосов
/ 18 июня 2019

Ночь сна помогает мне догадаться ....

Вот что я придумала .....

def get_success_url(self):
    book= Author.objects.filter(author_id=self.object.pk).first()
    return reverse_lazy('Author:author_view', kwargs={ 'pk' : book.pk })
...