Django 1.6:TypeError render_to_string()获得了关键字参数'context_instance'的多个值

时间:2014-06-15 13:06:33

标签: python django

我试图在我的一个视图中传递字典以在模板中使用它,但我得到以下错误

Traceback:
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "views.py" in showDocProfile
  179.     return render(request,'meddy1/docprofile.html',d,{'doctor': profile, 'UGC': UserContent.objects.all(), 'average': average})
File "/Library/Python/2.7/site-packages/django/shortcuts/__init__.py" in render
  53.     return HttpResponse(loader.render_to_string(*args, **kwargs),

Exception Type: TypeError at /docprofile/3/
Exception Value: render_to_string() got multiple values for keyword argument 'context_instance'

这是views.py

def showDocProfile(request, id):
    d = getVariables(request)
    profile = Doctor.objects.get(id=id)

    a = []
    count = 0
    for e in UserContent.objects.filter(doctor_id=id):
        a.append(e.time)
        count = count + 1

    if count == 0:
        count = 1
        average=sum(a)/float(count)

    else:
        average=sum(a)/float(count)    


    if request.user.is_authenticated():
        user = request.user
        ds = DoctorSeeker.objects.get(user=user)
        d['doctorseeker'] = ds

        doctorLiked = Like.objects.filter(doctor_id=profile.id,user_id=user.id)

        d['my_doctor'] = profile.id == request.user.id

        d['username'] = user.username

        if doctorLiked:
            d['liked'] = True
        else:
            d['liked'] = False

    return render(request,'meddy1/docprofile.html',d,{'doctor': profile, 'UGC': UserContent.objects.all(), 'average': average})

以下是我试图展示

的模板
    {% if logged_in and not liked %}
  <a class="btn btn-danger" href="/project/{{project.id}}/likeProject">I like This!</a>
{% else %}
  <button disabled class="btn btn-danger">Already Liked</button>

我不确定在我的观点中要改变什么才能使这项工作成功。

1 个答案:

答案 0 :(得分:1)

你传递的论点太多了;您将d作为模板字典传递,然后将不同的字典作为第四个参数传递;这意味着字典作为context_instance参数传入,并且在这里失败。

结合d和额外字典,只传入一个字典:

d.update({'doctor': profile, 'UGC': UserContent.objects.all(), 'average': average})
return render(request, 'meddy1/docprofile.html', d)