gpt4 book ai didi

django - 在 Django 中,如何在提交 CreateView 时重定向到 UpdateView?

转载 作者:行者123 更新时间:2023-12-05 06:26:53 25 4
gpt4 key购买 nike

我已经创建了一个 FormView 和模板 HTML,我将使用它们从模型创建和更新记录。

但是,我不知道如何设置 CreateView 以重定向到正在创建的新主键。我目前已将其设置为返回到基本页面,但我似乎无法找到任何有关从何处开始获取新的或现有的主键以重定向到 UpdateView 的信息。

模型.py

class NewEmployee(models.Model):
name = models.CharField(max_length=50)
position = models.CharField(max_length=50)
start_date = models.DateField()
date_entered = models.DateTimeField('date entered', auto_now_add=True)

表单.py

class NewEmpForm(ModelForm):
class Meta:
model = NewEmployee
fields = ['name', 'position', 'start_date']

View .py

class EditView(UpdateView):
model = NewEmployee
form_class = NewEmpForm


class Add_Emp(CreateView):
model = NewEmployee
form_class = NewEmpForm

网址.py

urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('add/', views.Add_Emp.as_view(success_url='../'), name='newemp-add'),
path('<int:pk>/', views.EditView.as_view(success_url="../"), name='newemp-rev'),
]

newemployee_form.html

<DOCTYPE html>
<html>
<head>
<title>Employee</title>
</head>
<body>

<form method="post" >
{% csrf_token %}
{{form.as_p}}

<button type="submit" class="btn btn-default">Submit</button>
</form>
</body>
</html>

最佳答案

在您的 CreateView 中,您通常会覆盖 form_valid方法,在验证表单后运行:

from django.shortcuts import redirect


class Add_Emp(CreateView):
model = NewEmployee
form_class = NewEmpForm

def form_valid(self, form):
employee = form.save() # save form
return redirect('newemp-rev', pk=employee.pk)

关于django - 在 Django 中,如何在提交 CreateView 时重定向到 UpdateView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com