Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 2, 2011 16:26:42

max38934
От:
Зарегистрирован: 2009-03-10
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

Народ, помогите, пожалуйста, мистика какая-то!
выплевует ошибку при попытке зайти на http://127.0.0.1:8000/

Exception Type: ViewDoesNotExist
Exception Value: Tried save_point in module geo.world.views. Error was: ‘module’ object has no attribute ‘save_point’
Exception Location: /home/max/python/geos/parts/instance/django/core/urlresolvers.py in _get_callback, line 135
после обновления страницы - другая ошибка и на этом все:
Exception Type: TypeError
Exception Value: ‘str’ object is not callable
Exception Location: /home/max/python/geos/parts/instance/django/core/handlers/base.py in get_response, line 100
views.py

from django.shortcuts import render_to_response
from django.template.loader import render_to_string
from django.http import HttpResponse
from django.template import RequestContext
from uni_form.helpers import FormHelper, Submit, Reset
from uni_form.helpers import Layout, Fieldset, Row, HTML
from geo.world.forms import MyForm
from world.models import World
import simplejson

def index(request):
form = MyForm()
waypoints = World.objects.order_by('name')
#form.helper.
response_dictionary = {
'form':form,
'waypoints': waypoints,
'content': render_to_string('waypoints.html', {'waypoints': waypoints}),
}

return render_to_response('index.html', response_dictionary)

def save_point(request):
"""Save waypoints"""
if request.method == 'POST':
for waypointString in request.POST.get('waypointsPayload', '').splitlines():
waypointID, waypointX, waypointY = waypointString.split()
waypoint = World.objects.get(id=int(waypointID))
waypoint.geometry.set_x(float(waypointX))
waypoint.geometry.set_y(float(waypointY))
waypoint.save()

return HttpResponse(simplejson.dumps(dict(isOk=1)), mimetype='application/json')
url.py

from django.conf.urls.defaults import *

urlpatterns = patterns('geo.world.views',
url(r'^$', 'index', name='index_page'),
url(r'^save/$', 'save_point', name='waypoints_save'),
)
если я закоментирую:
url(r'^save/$', 'save_point', name='waypoints_save'),
все работает отлично. не могу понять в чем бок!



Отредактировано (Июнь 2, 2011 16:27:46)

Офлайн

#2 Июнь 2, 2011 17:11:47

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

Если напрямую на http://127.0.0.1:8000/save/ стучаться, работает?

попробуйте в темплейте без urlresorvera ссылку проставить…

 $.post("{% url waypoints-save %}"
поменять на “/save/”…



Офлайн

#3 Июнь 3, 2011 09:07:04

max38934
От:
Зарегистрирован: 2009-03-10
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

при прямом обращении к 127.0.0.1:8000/save - 404 и не вижу своего заинклуденого урла:

(r'^$', include('geo.world.urls')),
Page not found (404)
^admin/
^accounts/login/$
^$
^media/(?P<path>.*)$
Ссылку вставил - результат такой же.
Проблема возникает если у меня в шаблоне присутствует:
$.post("{% url waypoints_save %}"
и в урлах:
url(r'^save/$', 'save_point', name='waypoints-save'),
Exception Type: TypeError
Exception Value: 'str' object is not callable
Exception Location: /home/max/python/geos/parts/instance/django/core/handlers/base.py in get_response, line 100



Отредактировано (Июнь 3, 2011 09:35:14)

Офлайн

#4 Июнь 3, 2011 09:32:10

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

max38934
urlpatterns = patterns('',<<<<
(r'^admin/', include(admin.site.urls)),
(r'^accounts/login/$', 'django.contrib.auth.views.login'),
url(r'^$', 'index', name='index_page'),
url(r'^save/$', 'save_point', name='waypoints-save'),
)
C таким урлом и не должно работать, как раз эту ошибку и должно выбрасывать. Префикс ведь не указан.
Но почему она изначально выбрасывалась…?

попробуйте напрямую импортировать save_point
from geo.world.views import save_point
...
url(r'^save/$', save_poinе, name='waypoints-save'),
...
все говорит о том что ошибка в загрузчике вьюшек.



Офлайн

#5 Июнь 3, 2011 09:38:45

max38934
От:
Зарегистрирован: 2009-03-10
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

при прямом импорте:

from django.conf.urls.defaults import *
from geo.world.views import index, save_point

urlpatterns = patterns('',
url(r'^$', index, name='index_page'),
url(r'^save/$', save_point, name='waypoints-save'),
)
Exception Type: ImproperlyConfigured
Exception Value: The included urlconf geo.world.urls doesn't have any patterns in it



Отредактировано (Июнь 3, 2011 09:39:51)

Офлайн

#6 Июнь 3, 2011 09:54:41

appetito
От:
Зарегистрирован: 2010-09-28
Сообщения: 147
Репутация: +  2  -
Профиль   Отправить e-mail  

не может найти вьюшку

{% url waypoints_save %} - тут подчеркивание
url(r'^save/$', save_poinе, name='waypoints-save'), - тут дефис



Офлайн

#7 Июнь 3, 2011 10:15:07

max38934
От:
Зарегистрирован: 2009-03-10
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

appetito
{% url waypoints_save %} - тут подчеркивание
url(r'^save/$', save_poinе, name='waypoints-save'), - тут дефис
да, спасибо, исправил, но увы - проблема не в этом.:(



Офлайн

#8 Июнь 3, 2011 10:29:44

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

Попробуйте вынесте все урлы в корневой urls.py. Может с include где-т косяк.
Упрощайте пока не найдете…

PS: (r'^$', include('geo.world.urls')), а в первом посте файл назвали url.py… вопрос где очепятка.



Отредактировано (Июнь 3, 2011 10:33:08)

Офлайн

#9 Июнь 3, 2011 11:03:49

max38934
От:
Зарегистрирован: 2009-03-10
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

pill
Попробуйте вынесте все урлы в корневой urls.py. Может с include где-т косяк.
Упрощайте пока не найдете…

PS: (r'^$', include('geo.world.urls')), а в первом посте файл назвали url.py… вопрос где очепятка.
вынес все в корневой урл:
from django.conf.urls.defaults import patterns, include, url
from django.conf import settings
from django.contrib import admin
from django.contrib.gis import admin
admin.autodiscover()

urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^accounts/login/$', 'django.contrib.auth.views.login'),
url(r'^$', 'geo.world.views.index', name='index_page'),
url(r'^save/$', 'geo.world.views.save_point', name='waypoints_save'),
)
все как и в самом начале (не может найти вьюшку, обновляю: ‘str’ object is not callable)

опечатка было только в самом посте, в проекте urls.py

может поможет index.html
{% load uni_form_tags %}
{% load media_url %}

<html>
<head>

<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src={% media 'js/jquery-1.6.min.js' %}></script>
</head>
<body onload='initialize()'>
<div id=map></div>
<div id=waypoints>
{{content}}
</div>
<input id="saveWaypoints" type="button" value="Save" disabled="disabled">
</br></br>
<a href="{% url index_page %}">Главная</a>
<a href="{% url waypoints_save %}">qqqqqqqqqq</a>
</br></br>

</body>
</html>
если коментирую:
url(r'^save/$', 'geo.world.views.save_point', name='waypoints_save'),
и в index.html
<a href="{#% url waypoints_save %#}">qqqqqqqqqq</a>
все работает!
только что написал еще одну вьюшку, прописал урлы, прописал в шаблоне. никакого копи-паста! те же ошибки!



Отредактировано (Июнь 3, 2011 11:27:31)

Офлайн

#10 Июнь 3, 2011 11:35:38

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

не может найти вьюшку

Ошибка явно не в темплейте, а в конфиге урлов.
Сделайте финальным аккордом прямой импорт в

from geo.world.views import save_point, index

urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^accounts/login/$', 'django.contrib.auth.views.login'),
url(r'^$', index, name='index_page'),
url(r'^save/$', save_point, name='waypoints_save'),
)



Отредактировано (Июнь 3, 2011 11:37:52)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version