【问题标题】:URL to redirect related model instance django重定向相关模型实例 django 的 URL
【发布时间】:2022-09-27 20:07:18
【问题描述】:

我有 2 个与 ForeignKey 相互链接的模型

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)

我有各自的表单、视图和模板来创建、更新、删除记录。

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})

我的网址.py

urlpatterns = [
....
....

path(\'moc-content/<int:pk>/verify-coordinate, views.verify_coordinate_view\', name=\'verifiy_coordinate\'),
....
....
]

我想要的是,在按照上面的视图更新验证器实例后,我想重定向回 moc 实例而不是验证器实例,即传入 url Moc 实例 pk 而不是验证器实例 pk。

任何帮助请...

  • 请向我们提供一个带有命名空间 \'verify_coorinate\' 的 url
  • 你可以包含 urls.py 吗?
  • 我为 verify_coordinate_view 添加了 url.py 并在最后澄清了我的问题。我想传递 moc 模型实例 pk (我试图通过 verifier.moc_id 来做
  • @MaximDanilov 你可以退房吗?
  • @haduki,你能看看吗?

标签: django django-views django-urls django-url-reverse


【解决方案1】:

你可能忘记了逗号:

redirect('verify_coorinate', pk=verifier.moc_id) # This is line, where you need help

更多在这里: https://docs.djangoproject.com/en/4.1/topics/http/shortcuts/#redirect

请尝试使用 Django-GCBV。在您的情况下,它可以是带有 SingleObjectMixin 的 UpdateView 或 FormView 更多在这里: https://docs.djangoproject.com/en/4.1/ref/class-based-views/generic-editing/#django.views.generic.edit.UpdateView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2019-08-01
    • 2021-03-20
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多