PDA

Visualizza la versione completa : [PYTHON] Redirect alla app di default in Django


fermat
12-02-2019, 17:02
ciao!

sto seguendo il tutorial su django, che mi ha fatto creare una app all'interno del progetto.
il problema è che quando avvio il server di test, e vado su http://127.0.0.1:8000/


Page not found (404)

Request Method:
GET


Request URL:
http://127.0.0.1:8000/




Using the URLconf defined in matteoferrone.urls, Django tried these URL patterns, in this order:


mf/
admin/

The empty path didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.




ovviamente gli altri due urls funzionano.
come faccio a dirgli di fare il redirect in automatico da http://127.0.0.1:8000/ a http://127.0.0.1:8000/mf ???

clasku
12-02-2019, 23:09
Negli urls, hai settato quello vuoto con “”?

fermat
15-02-2019, 12:53
Negli urls, hai settato quello vuoto con “”?

ciao!
così pare funzionare:


from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path('', include('mf.urls')),
path('mf/', include('mf.urls')),
path('admin/', admin.site.urls),
]


intendevi questo??

clasku
15-02-2019, 22:29
Esattamente

fermat
17-02-2019, 11:59
Esattamente

ottimo grazie!
:ciauz:

fermat
01-03-2019, 21:18
ciao!

ho notato che da quanto ho modificato come dici, mi appare questo warning in console:


WARNINGS:
?: (urls.W005) URL namespace 'mf' isn't unique. You may not be able to reverse all URLs in this namespace


dovrei risolverlo, o posso lasciarlo così?
in caso come risolvo?

clasku
02-03-2019, 00:15
Dipende, se vuoi usare il reverse degli url puoi usare una redirect view, qui lo spiega in sintesi
https://realpython.com/django-redirects/#django-redirects-a-super-simple-example

fermat
11-03-2019, 12:36
Dipende, se vuoi usare il reverse degli url puoi usare una redirect view, qui lo spiega in sintesi
https://realpython.com/django-redirects/#django-redirects-a-super-simple-example

ciao!

sinceramente non ho capito granchè.
o meglio, mi manca qualche passaggio.

questo è il mio views.py:


from django.views import generic
from .models import Lavori
from django.shortcuts import redirect


class IndexView(generic.ListView):
template_name = 'mf/index.html'
context_object_name = 'lavori'

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


class DetailView(generic.DetailView):
context_object_name = 'lavori'
template_name = 'mf/detail.html'

def get_queryset(self, **kwargs):
return Lavori.objects.filter(pk=self.kwargs['pk'])


def redirect_view(request):
response = redirect('/redirect-success/')
return response



cosa dovrei mettere nel redirect come argomento??

per quanto riguarda la parte dell'urlòs.py, ho due domande:
- parla di quello generale o di quello specifico della app?

quello mio specifico è questo:


from django.urls import path
from . import views

app_name = 'mf'
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
]

Loading