You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中实现通过姓名删除Profesor模型实例的功能?

解决通过姓名删除Profesor模型实例的问题

我来帮你搞定这个删除教授的功能,先梳理下你现有代码里的小问题,再一步步完善整个流程:

1. 先修正你的表单代码

你把姓名字段定义成了IntegerField,这显然不对——姓名是字符串类型,得改成CharField,还可以加个友好的提示标签:

class getName(forms.Form):
    name = forms.CharField(label="输入要删除的教授姓名", max_length=200)

2. 完善视图函数的核心逻辑

你的视图里有几个细节问题:拼写错误requst应该是request;普通Form类不能调用save()方法(那是ModelForm的专属功能);最重要的删除逻辑还没写,也没处理表单验证和用户反馈。这里是修正后的完整视图:

from django.shortcuts import render
from .forms import getName
from .models import Profesor

def obrisiProfesora(request):
    form = getName()
    message = ""
    if request.method == "POST":
        form = getName(request.POST)
        # 先验证表单输入是否合法
        if form.is_valid():
            # 从清洗后的安全数据里获取姓名(直接取form.name是错误的做法)
            target_name = form.cleaned_data['name']
            # 过滤匹配姓名的教授实例并直接删除,返回值里的第一个数是删除的数量
            deleted_count, _ = Profesor.objects.filter(name=target_name).delete()
            # 根据删除结果生成反馈信息
            if deleted_count > 0:
                message = f"成功删除了 {deleted_count} 位名为{target_name}的教授"
            else:
                message = f"没有找到名为{target_name}的教授"
    # 把表单和反馈信息传到模板
    context = {'form': form, 'message': message}
    return render(request, 'brisanje_profesora.html', context)

3. 最后完善HTML模板(brisanje_profesora.html)

模板需要显示表单、提交按钮,还要展示删除后的反馈信息,别忘了加Django必填的CSRF防护:

<!DOCTYPE html>
<html>
<head>
    <title>删除教授</title>
</head>
<body>
    <h1>删除教授</h1>
    <!-- 显示删除结果提示 -->
    {% if message %}
        <p>{{ message }}</p>
    {% endif %}
    <!-- 渲染表单 -->
    <form method="POST">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">确认删除</button>
    </form>
</body>
</html>

额外小提醒

看你的模型代码里写的是suername,应该是surname(姓氏)的拼写错误吧?如果需要通过「姓名+姓氏」精确删除教授,可以给表单加个姓氏字段,然后修改视图里的过滤条件:

# 表单新增姓氏字段
surname = forms.CharField(label="输入教授姓氏", max_length=200)
# 视图里的过滤逻辑改成
deleted_count, _ = Profesor.objects.filter(name=target_name, surname=target_surname).delete()

内容的提问来源于stack exchange,提问作者Ivan Stajić

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:02:33