Ошибка типа в / Recomm / __init __ () получила неожиданный аргумент ключевого слова 'mov ie' - PullRequest
0 голосов
/ 27 апреля 2020

Я получил ошибку при получении фильмов из функции, которая показывает ошибки. Фильмы получили неожиданный аргумент ключевого слова mov ie

File "E:\FinalYearProject\movierecommendationsystem\myapps\views.py" in recomm
 106.   return HttpResponse('recommend.html', movie=movie, r=r, t='s')           
 Exception Type: TypeError at /recomm/
 Exception Value: __init__() got an unexpected keyword argument 'movie'

def create_sim():
    data = pd.read_csv('./datasets/movies.csv')
    cv = CountVectorizer()
    count_matrix = cv.fit_transform(data['combined_features'])
    sim = cosine_similarity(count_matrix)
    return data, sim

def rcmd(m):
    m = m.lower()
    try:
        data.head()
        sim.shape
    except:
        data, sim = create_sim()
    if m not in data['title'].unique():
        return('Not found.')
    else:
        i = data.loc[data['title'] == m].index[0]
        lst = list(enumerate(sim[i]))
        lst = sorted(lst, key=lambda x: x[1], reverse=True)
        lst = lst[1:11]
        l = []
        for i in range(len(lst)):
            a = lst[i][0]
            l.append(data['title'][a])
        return l

И моя рекомендация. html - это

{% if t == 's' %}
<div class="shadow p-3 mb-5 bg-white rounded">
    <h3 style="color:rgb(0, 102, 255)">Sorry! This movie is not in our database.</h3>
    <h3 style="color:rgb(0, 102, 255)">Please check if you spelled it correct.</h3>
    <h3 style="color:rgb(0, 102, 255)">Or try with another movie.</h3>
</div>

{% else %}
<div class="shadow p-3 mb-5 bg-white rounded">
    <h1 style="color:rgb(0, 102, 255)">"{{movie}}" is a great choice.</h1>
    <h3 style="color:rgb(0, 102, 255)">Here are some more like this</h3>
</div>

<ul class="list-group list-group-flush">
    {% for m in r %}
    <li class="list-group-item" style="color:rgb(0, 179, 0)"><strong>{{m}}</strong></li>
    {% endfor %}
</ul>
{% endif %}

Когда я ищу [любые фильмы], такие как «Аватар», он всегда показывает [«anymovies»] = Аватар - отличный выбор и показывает «Не найдено» из функции def rcmd

1 Ответ

1 голос
/ 27 апреля 2020

HttpResponse не будет автоматически отображать шаблон. Вместо этого вам понадобится render().

РЕДАКТИРОВАТЬ: Исправлены эти несвязанные переменные и упрощен код.

from django.shortcuts import render

def recomm(request):
    movie = request.GET.get('movie')
    r = t = None
    if movie:
        r = recommendation(movie)
        t = ('s' if isinstance(r, list) else 't')
    return render(request, 'recommend.html', {
        'movie': movie,
        'r': r,
        't': t,
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...