我试图在我的一个视图中传递字典以在模板中使用它,但我得到以下错误
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>
我不确定在我的观点中要改变什么才能使这项工作成功。
答案 0 :(得分:1)
你传递的论点太多了;您将d
作为模板字典传递,然后将不同的字典作为第四个参数传递;这意味着字典作为context_instance
参数传入,并且在这里失败。
结合d
和额外字典,只传入一个字典:
d.update({'doctor': profile, 'UGC': UserContent.objects.all(), 'average': average})
return render(request, 'meddy1/docprofile.html', d)