我是新來的Django ......Django - 如何在我自己的應用程序中使用Django外部應用程序的通用視圖?
我已經安裝了Django的外部應用程序稱爲草堆,這種外部應用程序具有「python2.6的/站點包/草垛」內「views.py」文件。我認爲這個「views.py」在Django術語中被稱爲「通用視圖」。
通用視圖使用「urls.py」像這樣叫:
urlpatterns = patterns('haystack.views',
url(r'^search/$', FacetedSearchView(form_class=FacetedSearchForm, searchqueryset=sqs), name='haystack_search'),
)
我需要從我的應用程序這個通用視圖進行跳轉。我的問題是如何做到這一點?
的草堆「views.py」的代碼是這樣的:
from django.conf import settings
from django.core.paginator import Paginator, InvalidPage
from django.http import Http404
from django.shortcuts import render_to_response
from django.template import RequestContext
from haystack.forms import ModelSearchForm, FacetedSearchForm
from haystack.query import EmptySearchQuerySet
RESULTS_PER_PAGE = getattr(settings, 'HAYSTACK_SEARCH_RESULTS_PER_PAGE', 20)
class SearchView(object):
...
def __init__(self, template=None, load_all=True, form_class=None, searchqueryset=None, context_class=RequestContext, results_per_page=None):
...
def __call__(self, request):
...
def build_form(self, form_kwargs=None):
...
def get_query(self):
...
def get_results(self):
...
def build_page(self):
...
def extra_context(self):
...
def create_response(self):
...
def search_view_factory(view_class=SearchView, *args, **kwargs):
...
class FacetedSearchView(SearchView):
...
def __init__(self, *args, **kwargs):
...
def build_form(self, form_kwargs=None):
...
def extra_context(self):
...
def basic_search(request, template='search/search.html', load_all=True, form_class=ModelSearchForm, searchqueryset=None, context_class=RequestContext, extra_context=None, results_per_page=None):
...
能有人給什麼步驟我應該遵循拿出從「urls.py」的代碼,並把這件事情在工作我的「views.py」應用程序?
最好的問候,
只是說明,「views.py」不稱爲通用視圖。 views.py只是一個容器的意見(通用或普通)。通常[通用視圖](https://docs.djangoproject.com/en/1.3/topics/generic-views/)意味着執行一項任務的簡單視圖,並且可以在許多情況下使用。 – Lycha