[英]Django 'float' object has no attribute 'user' while using login decorator
我正在尝试构建一个 django 应用程序,该应用程序目前运行良好。 现在我正在确保用户需要登录以便他们可以登录。如果用户已登录,则用户可以使用机器学习 model 来解决问题。
我收到的错误消息是“浮动”object 没有属性“用户” ,这是在我使用@login_required
中的 @login_required function 之后开始的。
注意:用户通过 Django 提供的localhost:8000/admin/
面板登录。 (稍后我会改变它)在我修复这个错误之后
视图.py
def home(request):
return render(request, 'home.html')
@login_required
def dashboard(request):
return render(request, 'index.html')
@login_required
def getPredictions(temp_normal, hour,hour_x,hour_y):
import pickle
model = pickle.load(open("test_model.sav", "rb"))
prediction = model.predict([[temp_normal, hour,hour_x,hour_y]])
return prediction
@login_required
def result(request):
temp_normal = float(request.GET['temp_normal'])
hour = float(request.GET['hour'])
hour_x = float(request.GET['hour_x'])
hour_y = float(request.GET['hour_y'])
result = getPredictions(temp_normal, hour,hour_x,hour_y)
return render(request, 'result.html', {'result': result})
html代码index.html
{% extends "base.html" %}
{% block content %}
<div class="content">
<div class="row">
<div class="col-lg-4">
<div class="card card-tasks">
<h1> </h1>
<form action="{% url 'result' %}">
{% csrf_token %}
<p>temp_normal:</p>
<input class="form-control" type="text" name="temp_normal">
<br>
<p>Weging:</p>
<input class="form-control" type="text" name="Weging">
<br>
<p>str:</p>
<input class="form-control" type="text" name="straling">
<br>
<p>hour:</p>
<input class="form-control" type="text" name="hour">
<br>
<p>hour_x:</p>
<input class="form-control" type="text" name="hour_x">
<br>
<p>hour_y:</p>
<input class="form-control" type="text" name="hour_y">
<br>
<input class="form-control" type="submit" value='Bereken'>
</form>
</div>
</div>
</div>
</div>
{% endblock content %}
结果.html
{% extends "base.html" %}
{% block content %}
<h1>Prediction</h1>
{{ result }}
<p>resultaat</p>
{% endblock content %}
装饰器login_required
仅用于视图,并期望将请求 object 作为第一个参数,这就是错误的原因, getPredictions
不是视图只是 function。删除装饰器login_required
到getPredictions
并将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.