그래서 저는 Python/Django의 연락처로 채워진 테이블을 만들려고합니다. 프로그램을 실행하려고하면 위의 오류 메시지가 나타납니다 ("ImportError : 가져올 수 없습니다 'edit_contact'경로는 정규화 된 경로 여야합니다.)'edit_contact'을 (를) 가져올 수 없습니다. 경로는 정규화 된 경로 여야합니다
여기에 내가 사용중인 views.py가 있습니다 :
from contacts.models import Contact
#, Address, Telephone
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response, get_object_or_404, render
from django.template import Context, loader
from django.forms.models import inlineformset_factory
from django.template import loader, Context, RequestContext
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required
# Create your views here.
def index(request):
#return HttpResponse("Hey! You can see contacts here!")
contact_list = Contact.objects.all().order_by('last_name')
return render_to_response('contacts/index.html', {'contact_list': contact_list},
RequestContext(request))
def detail(request, contact_id):
c = get_object_or_404(Contact, pk=contact_id);
def new_contact(request):
print "new_contact"
#AddressInlineFormSet = inlineformset_factory(Contact,
if request.method == "POST":
form = ContactForm(request.POST)
if form.is_valid():
contact = form.save()
return HttpResponseRedirect(reverse('contacts.views.detail', args=(contact.pk,)))
else:
form = ContactForm()
return render_to_response("contacts/form.html",{
"form": form,
}, RequestContext(request))
def edit_contact(request, contact_id):
contact = Contact.objects.get(pk=contact_id)
if request.method == "POST":
form = ContactForm(request.POST, instane=contact)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('contacts.views.detail', args=(contact.pk,)))
else:
form = ContactForm(instance = contact)
return render_to_response("contacts/form.html", {
"form": form,
}, RequestContext(request))
이 는 urls.py입니다 :
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<contact_id>\d+)/$', 'detail', name='contactdetailsurl'),
url(r'^new/$', 'new_contact', name='newcontacturl'),
url(r'^(?P<contact_id>\d+)/edit/$','edit_contact', name='editcontacturl'),
]
그리고 오류가 내 site_base.html 파일에이 줄을 가리키는 :
<li id="tab_first"><a href="
{% url contacts.views.index %}
"><i class="icon-book"></i> Contacts</a></li>
추가 정보가 필요한 경우 알려주십시오. 감사!
좋아, 그 제안은 그 오류를 제거하기 위해 노력하지만, 지금은 말한다 오류 받고 있어요 : 리비어 '을'에 대한을 인수 '()'및 키워드 인수 '{}'이 (가) 없습니다. 시도한 패턴은 0 개입니다 : []. 첫 번째 오류가 내 .html 파일에서 동일한 코드 줄을 가리 킵니다. 여기에 무슨 일이 일어나고 있는지, 어떻게 고칠 수 있는지 이해하십니까? – Liz
URL 패턴 (이 경우'{% url '인덱스'%}')을 사용할 때는 * name *을 사용해야합니다. – Alasdair
코드를 최신 상태로 만드는 또 다른 제안 :'render_to_response '대신'render'를 사용하십시오. '반환 렌더링 (요청, 'contacts/index.html', { 'contact_list': contact_list})'. – Alasdair