2017-04-19 93 views
0

這是我views.pyDjango:如何修復模板渲染?

views.py:

from django.views import generic 
from django.shortcuts import render, get_object_or_404 
from .models import medicines,details_post,Post 
from django.http import JsonResponse 


def index(request): 
    detailsposts=details_post.objects.all() 
    medicine=medicines.objects.all() 
    blog=Post.objects.all() 
    return render(request,'aptool/index.html',{'my_dis':detailsposts,'my_data':medicine,'blogposts':blog}) 

def search(request): 
    searchdata=request.GET.get('searchtext') 
    queryset=details_post.objects.filter(disease_name__startswith=searchdata).values_list('disease_name') 
    return JsonResponse({'result':list(queryset)}) 

class MedicineView(generic.ListView): 
    template_name='aptool/medicine.html' 

    def get_queryset(self): 
     return medicines.objects.all() 

class DiseaseView(generic.ListView): 
    template_name='aptool/disease.html' 

    def get_queryset(self): 
     return details_post.objects.all() 

class BlogView(generic.ListView): 
    template_name='aptool/blog.html' 

    def get_queryset(self): 
     return Post.objects.all() 



def meddetail(request, med_id): 
    medicine=get_object_or_404(medicines,pk=med_id) 
    return render(request,'aptool/meddetail.html',{'medicine':medicine}) 

def disdetail(request, dis_id): 
    detailsposts=get_object_or_404(details_post,pk=dis_id) 
    return render(request,'aptool/details_post.html',{'detailsposts':detailsposts}) 



def searchdetail(request): 
    searchtext=request.POST['searchtext'] 
    try: 
     detailsposts=details_post.objects.get(disease_name__startswith=searchtext) 
    except: 
     return render(request,'aptool/details_post.html',{'error_message':True}) 
    else: 
     return render(request,'aptool/details_post.html',{'detailsposts':detailsposts}) 


def blogdetail(request,blog_id): 
    blog= get_object_or_404(Post,pk=blog_id) 
    return render(request,'aptool/blog_post.html',{'blog':blog}) 

雖然urls.py看起來是這樣的:

***urls.py*** 

from django.conf.urls import url, include 
from . import views 

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^medicine/$',views.MedicineView.as_view(),name='medicine'), 
    url(r'^disease/$',views.DiseaseView.as_view(),name='disease'), 
    url(r'^blog/$',views.BlogView.as_view(),name='blogview'), 
    url(r'^disease/(?P<dis_id>[0-9]+)/$',views.disdetail, name='disdetail'), 
    url(r'^medicine/(?P<med_id>[0-9]+)/$', views.meddetail, name='meddetail'), 
    url(r'blog/(?P<blog_id>[0-9]+)/$', views.blogdetail, name='blogdetail'), 
    url(r'^disease/detail$',views.searchdetail,name='searchdetail'), 
    url(r'^search/$',views.search,name='search'), 
    ] 

是出現在我嘗試加載index.html的問題是:

NoReverseMatch at /index/ 
Reverse for 'blog' with arguments '()' and keyword arguments '{}' not 
found. 0 pattern(s) tried: [] 

我只是無法弄清楚代碼有什麼問題。任何幫助都會很棒。

回答

3

發生這種情況是因爲您沒有名稱爲blog的任何urlconf。 也許你想使用blogview

將模板的url模板標籤中的blog替換爲blogview