django - 'render' 对象没有属性 'GET'
问题描述
我正在使用 django 和 postgresql 为一个 uni 项目开发一个 Web 应用程序。这是我第一次使用 django 表单,并且在尝试渲染其中任何一个以进行测试运行并找出渲染失败并显示上述错误消息的视图时。
我之前使用过 Django,但这是我第一次使用表单——以前,我通过 API 视图完成了对象创建和编辑。我找不到我的代码错误的地方,但我尝试改写它,移动行以查看它是否有帮助(它没有,)甚至避免继承并试图将其表述为一种简单的形式(hasn'也没有帮助。)我有四种不同的形式,但它们都提供相同的错误消息,所以我将展示一个我不太自信的用户模型扩展,以防万一有比我更多的错误。已经意识到。
这是我得到的代码
class JdTform(UserCreationForm):
telefono = forms.IntegerField()
class Meta(UserCreationForm.Meta):
fields = [
'telefono'
]
labels = {
'telefono': 'teléfono'
}
widgets = {
'telefono': forms.NumberInput()
}
def jdt_form_view(request):
if request.method == 'GET':
form = JdTform()
return render(request, 'personas/formu_jdt.html', {'form': form})
if request.method == 'POST':
form = JdTform(request.POST)
if form.is_valid():
user = form.save()
fono = form.cleaned_data.get('telefono')
jdt = jefeDeTaller(telefono=fono, u=user)
jdt.save()
return redirect('cal_fecha')
<html lang="en">
<head>
<meta charset="utf-8">
<title>Gestor de Trabajo</title>
</head>
<body>
<header>
<h1>My Site</h1>
</header>
<main>
<h2>Sign up</h2>
<form action="/your-name/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
</main>
</body>
</html>
urlpatterns = [
path('calendario/<int:ano>/<int:mes>/', views.calendario_mes, name='cal_fecha'),
path('usuarios/jefedetaller/', views.jdt_form_view, name='formulario_jdt'),
我在调试页面上收到的错误消息是
AttributeError at /usuarios/jefedetaller/
'render' object has no attribute 'get'
带回溯
Request Method: GET
Request URL: http://127.0.0.1:8000/usuarios/jefedetaller/
Django Version: 2.2.1
Python Version: 3.5.1
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'gestor']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\Flavio\Envs\3dmente\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\Flavio\Envs\3dmente\lib\site-packages\django\utils\deprecation.py" in __call__
96. response = self.process_response(request, response)
File "C:\Users\Flavio\Envs\3dmente\lib\site-packages\django\middleware\clickjacking.py" in process_response
26. if response.get('X-Frame-Options') is not None:
Exception Type: AttributeError at /usuarios/jefedetaller/
Exception Value: 'render' object has no attribute 'get'
使用这个特定的模型,想法是创建一个用户对象,直接将它与一个 jdt 对象链接,并通过这个实例化传递 fono 信息。
如果您能提供帮助,请提前非常感谢您!
解决方案
推荐阅读
- python - 使用多文件夹和文件和 TensorFlow 部署 exe Kivy
- mysql - 带有 MySQL 和 Maria DB 提交和回滚问题的 Spring Boot JDBCTemplate
- java - 如何确保 Java Web Start 应用程序的单个实例正在客户端计算机上运行?
- javascript - 递归 axios 调用
- python - pandas:在组内使用条件进行迭代
- c# - 如何在 ASP.NET Core 重写模块中使用 {PATH_INFO}?
- android - Angular/Cordova 应用程序 html5 视频标签无法在 Android 上播放
- dependencies - 如何在理解中一次创建多个蝴蝶图?
- python - Freeze 方法在 Frozen Flask 中遇到文件存在错误
- r - Shiny Leaflet R 无法正确更改圆形标记的颜色