etianen / django-watson

Full-text multi-table search application for Django. Easy to install and use, with good performance.
BSD 3-Clause "New" or "Revised" License
1.2k stars 130 forks source link

django.urls.exceptions.NoReverseMatch: 'app_name' is not a registered namespace #202

Closed alzearafat closed 6 years ago

alzearafat commented 7 years ago

Django : 1.11 Python : 3.5.x DB : SQLite

Hi there

I'm pretty sure I already following the instruction, but still no luck. When I run ./manage.py buildwatson it's error :

# ./manage.py buildwatson

Traceback (most recent call last):
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/urls/base.py", line 77, in reverse
    extra, resolver = resolver.namespace_dict[ns]
KeyError: 'app_trip'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/__init__.py", line 355, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python3.5/contextlib.py", line 30, in inner
    return func(*args, **kwds)
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/management/commands/buildwatson.py", line 142, in handle
    refreshed_model_count += rebuild_index_for_model(model, engine_slug, verbosity)
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/management/commands/buildwatson.py", line 61, in rebuild_index_for_model
    _bulk_save_search_entries(iter_search_entries())
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/search.py", line 205, in _bulk_save_search_entries
    search_entry_batch = list(islice(search_entries, 0, batch_size))
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/management/commands/buildwatson.py", line 40, in iter_search_entries
    for search_entry in search_engine_._update_obj_index_iter(obj):
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/search.py", line 484, in _update_obj_index_iter
    "url": adapter.get_url(obj),
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/search.py", line 153, in get_url
    return obj.get_absolute_url()
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/db/models/__init__.py", line 58, in inner
    return reverse(bits[0], None, *bits[1:3])
  File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/urls/base.py", line 87, in reverse
    raise NoReverseMatch("%s is not a registered namespace" % key)
django.urls.exceptions.NoReverseMatch: 'app_trip' is not a registered namespace

I have an app called app_trip and models called Trip, and here is my codes:

# apps.py
from django.apps import AppConfig
from watson import search as watson

class AppTripConfig(AppConfig):
    name = 'app_trip'
    def ready(self):
        Trip = self.get_model('Trip')
        watson.register(Trip)
# __init__.py
default_app_config = 'app_trip.apps.AppTripConfig'

Any help would be greatly appreciated!

Thank you

etianen commented 7 years ago

Are you doing anything fancy with your urlconf, such as lazy-loading it? For some reason, the app_trip urlconf hasn't been loaded by the time watson does indexing.

On Sat, 6 May 2017 at 13:46 Alzea Arafat notifications@github.com wrote:

Django : 1.11 Python : 3.5.x DB : MariaDB

Hi there

I'm pretty sure I already following the instruction, but still no luck. When I run ./manage.py buildwatson it's error :

./manage.py buildwatson

Traceback (most recent call last): File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/urls/base.py", line 77, in reverse extra, resolver = resolver.namespace_dict[ns] KeyError: 'app_trip'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "manage.py", line 22, in execute_from_command_line(sys.argv) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/init.py", line 363, in execute_from_command_line utility.execute() File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/init.py", line 355, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, cmd_options) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, *options) File "/usr/lib/python3.5/contextlib.py", line 30, in inner return func(args, kwds) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/management/commands/buildwatson.py", line 142, in handle refreshed_model_count += rebuild_index_for_model(model, engine_slug, verbosity) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/management/commands/buildwatson.py", line 61, in rebuild_index_for_model _bulk_save_search_entries(iter_search_entries()) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/search.py", line 205, in _bulk_save_search_entries search_entry_batch = list(islice(search_entries, 0, batch_size)) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/management/commands/buildwatson.py", line 40, in iter_search_entries for search_entry in searchengine._update_obj_index_iter(obj): File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/search.py", line 484, in _update_obj_index_iter "url": adapter.get_url(obj), File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/watson/search.py", line 153, in get_url return obj.get_absolute_url() File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/db/models/init.py", line 58, in inner return reverse(bits[0], None, *bits[1:3]) File "/home/zea/Riset/Python/env_vakansea/lib/python3.5/site-packages/django/urls/base.py", line 87, in reverse raise NoReverseMatch("%s is not a registered namespace" % key) django.urls.exceptions.NoReverseMatch: 'app_trip' is not a registered namespace

I have an app called app_trip, and here is my codes:

apps.py

from django.apps import AppConfig from watson import search as watson

class AppTripConfig(AppConfig): name = 'app_trip' def ready(self): Trip = self.get_model('Trip') watson.register(Trip)

init.py

default_app_config = 'app_trip.apps.AppTripConfig'

Any help would be greatly appreciated!

Thank you

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/etianen/django-watson/issues/202, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJFCBwl4mcE2TnAX7Blqcud7ODQIBrHks5r3GtlgaJpZM4NSv4d .

alzearafat commented 7 years ago

Hi @etianen thank you for your response

Umm... I'm not sure, just please check my urls.py :

# app_trip urls.py

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

urlpatterns = [
    url(r'^$', views.trip_homepage, name='trip_homepage'),
    url(r'^trips/$', views.trip_list, name='trip_list'),
    url(r'^trip/new/$', views.trip_new, name='trip_new'),
    url(r'^trip/search/$', views.trip_search, name='trip_search'),
    url(r'^trip/(?P<slug>[-\w]+)/$', views.trip_single, name='trip_single'),
    url(r'^trip/(?P<slug>[-\w]+)/edit/$', views.trip_edit, name='trip_edit'),
    url(r'^trip/(?P<slug>[-\w]+)/preview/$', views.trip_preview, name='trip_preview'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# project's urls.py

from django.contrib import admin
from django.conf import settings
from app_hoster import views
from app_trip import views
from django.conf.urls.static import static
from django.conf.urls import include, url

urlpatterns = [
    # MAIN URL
    url(r'^admin/', admin.site.urls),
    url(r'^accounts/', include('registration.backends.simple.urls')),
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),

    # APP_TRIP URL
    url(r'^', include('app_trip.urls')),
    url(r'^hoster/', include('app_hoster.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Thank you @etianen !

etianen commented 7 years ago

Try using this:

url(r'^', include('app_trip.urls', namespace="app_trip")),

On Tue, 9 May 2017 at 03:33 Alzea Arafat notifications@github.com wrote:

Hi @etianen https://github.com/etianen thank you for your response

Umm... I'm not sure, just please check my urls.py :

app_trip urls.py

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

urlpatterns = [ url(r'^$', views.trip_homepage, name='trip_homepage'), url(r'^trips/$', views.trip_list, name='trip_list'), url(r'^trip/new/$', views.trip_new, name='trip_new'), url(r'^trip/search/$', views.trip_search, name='trip_search'), url(r'^trip/(?P[-\w]+)/$', views.trip_single, name='trip_single'), url(r'^trip/(?P[-\w]+)/edit/$', views.trip_edit, name='trip_edit'), url(r'^trip/(?P[-\w]+)/preview/$', views.trip_preview, name='trip_preview'), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

project's urls.py

from django.contrib import admin from django.conf import settings from app_hoster import views from app_trip import views from django.conf.urls.static import static from django.conf.urls import include, url

urlpatterns = [

MAIN URL

url(r'^admin/', admin.site.urls),
url(r'^accounts/', include('registration.backends.simple.urls')),
url(r'^ckeditor/', include('ckeditor_uploader.urls')),

# APP_TRIP URL
url(r'^', include('app_trip.urls')),
url(r'^hoster/', include('app_hoster.urls')),

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Thank you @etianen https://github.com/etianen !

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/etianen/django-watson/issues/202#issuecomment-300044659, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJFCFIi5yi3Q-1D0LezHE6em4W8lQzCks5r39CDgaJpZM4NSv4d .

Devanshi1728 commented 3 years ago

same issue...bt not working in my file