繁体   English   中英

Django 'float' object 在使用登录装饰器时没有属性 'user'

[英]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_requiredgetPredictions并将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM