I have a 2 models with ForeignKey linked to each other
class Moc(models.Model):
title = models.CharField(max_length=128, blank=False)
scope = models.TextField(max_length=128, blank=False)
....
def __str__(self):
return self.title
class Verifier(models.Model):
moc = models.ForeignKey(Moc, related_name='verifiers' on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
approve = models.BooleanField(default=False). reject =
reject = models.BooleanField(default=False)
....
def __str__(self):
return str(self.id)
I have a respective forms, views and templates to create, update, delete records.
def verifier_signoff_view(request, pk):
verifier = Verifier.objects.get(pk=pk)
form = VerifierSignForm
if request.method == 'POST':
form = VerifierSignForm(request.POST, instance=verifier)
if form.is_valid():
form.save(commit=False)
if verifier.approve is True and verifier.reject is True:
return HttpResponseForbidden('You have either APPROVE or REJECT - operation not allowed!')
else:
form.save()
return redirect('verify_coorinate' pk=verifier.moc_id) # This is where I need help...
else:
return render(request, 'moc/verify_signoff.html', context={'verifier': verifier, 'form': form})
My urls.py
urlpatterns = [
....
....
path('moc-content/<int:pk>/verify-coordinate, views.verify_coordinate_view', name='verifiy_coordinate'),
....
....
]
What I want is that after I update verifier instance as per above view, I want to redirect back to moc instance rather than verifier instance, i.e. pass in url Moc instance pk instead of Verifier instance pk.
Any help please...
you probably forgot the comma:
more here: https://docs.djangoproject.com/en/4.1/topics/http/shortcuts/#redirect
Please, try to use Django-GCBV. In your case it can be UpdateView or FormView with SingleObjectMixin more here: https://docs.djangoproject.com/en/4.1/ref/class-based-views/generic-editing/#django.views.generic.edit.UpdateView