MattG
MattG

Reputation: 1932

return to specific page in Django

I would like to return to a specific page after I edit a record using Django "UpdateView", however this page url needs an argument passed to it as well (see urls.py below). I am pretty sure I need to use "get_absolute_url", which works when I am just redirecting to an unfiltered page, but can't seem to get the syntax to redirect to a filtered page.

Models.py

class DefaultDMLSProcessParams(models.Model):
    device = models.ForeignKey(get_user_model(),on_delete=models.CASCADE,)
    customerTag = models.CharField(max_length=50,)
    processNotes = models.TextField(max_length=300,blank=True,default = "") 

    def __str__(self):

        return str(self.defaultParamDescrip)

    def get_absolute_url(self): 
        #self.object.pk? pass this below somehow?
        return reverse('Default_Listview',)

views.py

class defaultUpdateView(LoginRequiredMixin,UpdateView):
    model = models.DefaultDMLSProcessParams
    fields = ['processNotes','customerTag']
    template_name = 'default_edit.html'
    login_url = 'login'

urls.py

path('<int:device>', DefaultsListView.as_view(), name='Default_Listview'),

Upvotes: 1

Views: 261

Answers (1)

JPG
JPG

Reputation: 88479

Specify the parameter by args argument of reverse() function

def get_absolute_url(self):
    # self.object.pk? pass this below somehow?
    return reverse('Default_Listview', args=[self.id, ])

You could find more example in the Official Django doc .

Upvotes: 1

Related Questions