使用Django,如何单击模板中的按钮来更新值?

时间:2020-09-24 23:13:56

标签: python django django-forms django-templates

在我的应用中,“员工”可以分配给不同的“主管”。单个员工页面的html模板包含所有可用主管的列表。我想在列表中的每个主管旁边放置一个按钮,以便单击该按钮时,employee.assigned_supervisor值将更新。即使分配了主管,我也希望能够通过单击列表中其他主管旁边的按钮来更改分配的主管。

我已经浏览了文档和许多其他站点/示例,而我所能找到的只是表单示例,您可以访问单独的页面,完成/更新表单并提交。我只想通过单击按钮来更新值。我正在使用Django 3.1。

models.py

class Supervisor(models.Model):
    name = models.CharField(max_length=30)

class Employee(models.Model):
        name = models.CharField(max_length=30)
        assigned_supervisor = models.ForeignKey(Supervisor)

forms.py

class EmployeeForm(forms.ModelForm):
    class Meta:
        model = Employee
        fields = ['name', 'assigned_supervisor']

views.py

def new_employee(request):
    if request.method != 'POST':
        form = EmployeeForm()
    else:
        form = EmployeeForm(data=request.POST)
        if form.is_valid():
            form.save()
            return redirect('my_app:employees')

    context = {'form': form}
    return render(request, 'schedules/new_employee.html', context)

employee.html

 <p>Employee: {{ employee }}</p>

 <p>Available Supervisors:</p>
   <li>
        {% for supervisor in supervisors %}
             <li>{{ supervisor }}</li> <!-- Insert "Assign" button here -->
        {% endfor %}
    </ul>

0 个答案:

没有答案