添加或编辑(如果已存在)



我正在开发一个web应用程序,该应用程序具有许多允许用户向数据库提交数据的表单。

数据链接到一个项目,在项目页面上,我有一个下拉列表,允许您选择要添加到项目中的信息。

目前,我有两个视图链接到两个下拉列表。一个用于添加新数据,一个用于更新,但理想情况下,我希望该按钮可以带您进行更新,也可以根据已添加到数据库中的数据添加新页面。

那么,有没有一种方法可以让一个按钮自动带你进入正确的视图?

我想我需要视图中的某种逻辑来处理这个问题。但我不确定这会是什么?

Views.py

@login_required
def AddFundamentals(request,project_id):
project = get_object_or_404(Project, pk=project_id)
if request.method == 'POST':
form = AddFundamentalsForm(request.POST)
if form.is_valid():
form.instance.project = project
form.save()
return redirect('http://127.0.0.1:8000/')
else:
form = AddFundamentalsForm()
return render(request, 'pages/add_fundamentals.html', {'project': project, "form": form})

@login_required
def UpdateFundamentals(request,project_id):
project= Project.objects.get(pk=project_id)
form = AddFundamentalsForm(request.POST or None, instance=project)
if form.is_valid():
form.save()
return redirect('dahsboard.html')
return render(request, 'pages/update_fundamentals.html', {'project': project, "form": form})

HTML

<div class="col-sm-6">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false">
Add Evaluation Data <i class="mdi mdi-chevron-down"></i>
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="{% url 'add_fundamentals' project.id %}">Add Critical Fundamentals <span class="badge bg-success"></span></a>
<a class="dropdown-item" href="{% url 'update_fundamentals' project.id %}">Update Critical Fundamentals</a>
<a class="dropdown-item" href="#">Secondary Elements</a>
<a class="dropdown-item" href="#">Other Elements</a>
<a class="dropdown-item" href="#">Founders and Development Team</a>
<a class="dropdown-item" href="#">Marketing Assessment</a>
<a class="dropdown-item" href="#">Product Evaluation</a>
</div>
</div>
</div><!-- end col -->

Views.py

@login_required
def Add_or_updateFundamentals(request,project_id):
project = Project.objects.filter(pk=project_id)
check_exist = project.exists()
if request.method == 'POST':
if check_exist:
form = AddFundamentalsForm(request.POST,instance=project[0])
else:
form = AddFundamentalsForm(request.POST)
if form.is_valid():
if not check_exist:
form.instance.project = project
form.save()
return redirect('http://127.0.0.1:8000/')
else:
if check_exist:
form = AddFundamentalsForm(instance=project[0])
return render(request, 'pages/update_fundamentals.html', {'project': project, "form": form})
else:
form = AddFundamentalsForm()
return render(request, 'pages/add_fundamentals.html', {'project': project, "form": form})

相关内容

最新更新