python - Django: Class Based View accessing URL variables -


my urls.py has entry:

urlpatterns = [      url(r'^results/(?p<query>).+', views.resultsview.as_view(), name="results"), ] 

which matches corresponding class based view:

class resultsview(templateview):      template_name = os.path.join(appname, "results.html")      def dispatch(self, request, *args, **kwargs):         query = kwargs['query']         print("here: " + str(json.dumps(kwargs, indent=1)))         print(self.kwargs['query'])         print(self.kwargs.get('query'))         print(kwargs['query'])         print(kwargs.get('query'))          if query none:             return redirect('/')         return super(resultsview, self).dispatch(request, *args, **kwargs)      def get_context_data(self, **kwargs):          context = super(resultsview, self).get_context_data(**kwargs)         print("here: " + str(json.dumps(kwargs, indent=1)))         print(self.kwargs['query'])         print(self.kwargs.get('query'))         print(kwargs['query'])         print(kwargs.get('query'))         ...      # here test if 'query' set      def get(self, request, query):         print(query) 

i'm trying value of query variable set in urls.py. however, after trying various solutions found on other posts (as can see print statements), nothing working.

i'm sure urls.py set properly, because request resolves correct page (results/), attempts print query entry of dict return empty string, , json.dumps(kwargs, indent=1)) prints this:

here: {  "query": "" } 

what doing wrong?

just copy comment answer. missed pattern part in url's regular expression. try change url this:

url(r'^results/(?p<query>[\w.-]+)', views.resultsview.as_view(), name="results") 

Comments

Popular posts from this blog

minify - Minimizing css files -

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -