Решил освоить django подумал что хватит повторять все за мужиком из видео надо что то самому попробывать без подсказок и столкнулся с этим.
Reverse for 'boss' with no arguments not found. 1 pattern(s) tried: ['mymeteo/gorod/(?P[0-9]+)/$']
Request Method: GET
Request URL:
127.0.0.1:8000/mymeteo/gorod/4
Django Version: 3.0.3
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'boss' with no arguments not found. 1 pattern(s) tried: ['mymeteo/gorod/(?P[0-9]+)/$']
Exception Location: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/urls/resolvers.py in _reverse_with_prefix, line 677
Python Executable: /Library/Frameworks/Python.framework/Versions/3.8/bin/python3
Python Version: 3.8.1
Python Path:
['/Users/stepan/Desktop/django-pyowm/meteo',
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python38.zip',
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8',
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages']
Server time: Вт, 10 Мар 2020 07:30:43 +0000
я понимаю что это за ошибка но не понимаю почему она выскакиваем у меня
вот так выглядит urls.py
from django.urls import path, include
from . import views
urlpatterns = [
path ('list/', views.ListGorod.as_view(), name = 'listgorod'),
path ('gorod/<int:id>/', views.MeteoList.as_view(), name = 'boss'),
]
вот так выглядит views.py
class MeteoList(View):
def get (self, request, id):
obj = Gorod.objects.get ( id__iexact = id)
form = GorodForm(instance=obj)
try:
o=pyowm.OWM("262fea7ee569218476043b47466017ea")
obs=o.weather_at_place(obj.gorod)
w=obs.get_weather()
except:
o=pyowm.OWM("262fea7ee569218476043b47466017ea")
obs=o.weather_at_place('biysk, RUS')
w=obs.get_weather()
wind = w.get_wind()
temperature = w.get_temperature('celsius')
return render(request, 'mymeteo/meteo_list.html', context ={'temp' : w, 'temperature' : temperature, 'form':form})
def post (self, request, id):
obj = Gorod.objects.get (id__iexact = id)
b_form = GorodForm(request.POST, instance=obj)
new_obg = b_form.save()
try:
o=pyowm.OWM("262fea7ee569218476043b47466017ea")
obs=o.weather_at_place(obj.gorod)
w=obs.get_weather()
except:
o=pyowm.OWM("262fea7ee569218476043b47466017ea")
obs=o.weather_at_place('biysk, RUS')
w=obs.get_weather()
wind = w.get_wind()
temperature = w.get_temperature('celsius')
return render(request, 'mymeteo/meteo_list.html', context ={'temp' : w, 'temperature' : temperature, 'form':form})
return redirect(new_obg)
и вот так выглядит get_absolute_url в моделях
class Gorod (models.Model):
gorod = models.CharField(max_length = 50)
def get_absolute_url(self):
return reverse("boss", kwargs={"id" : self.id})
def __str__ (self):
return self.gorod
я понимаю что скорей всего здесь помимо, есть еще куча других ошибок..но я даже до них добратся не могу.. потому что сталкиваюсь с NoReverseMatch. Я затеял это ради обучение и практики.
При этом я уже не первый раз пытаюсь сделать какие то тестовые проектики не по видео, а самостоятельно. И до этого момента такие конструкции работали.
Вообшем у меня прям тотальное не понимание почему срабатывает эта ошибка.