내가 정기적으로 긴 URL 연결되는 링크 - 축약 서비스 응용 프로그램을 쓴 주어진 쿼리와 일치하고, 장고-1.5.1로 재 지정에 사용하는 10 영숫자 문자열을 만듭니다. 나는 404 페이지의 말을 얻을 내가 다른 두 개의 뷰에 액세스하려고 (새로운 짧은 URL을 생성하는 하나 하나가 모든 링크를 볼 때) "url(r'^(?P<short>\w+)/$', 'target'),
하지만 몇 가지 이유 : 생성 된 문자열에서
리디렉션 링크와 함께 잘 작동 주어진 검색어와 일치하는 미니가 없습니다. "장고 없음 미니
from django.conf.urls import patterns, url
urlpatterns = patterns('mini_url.views',
url(r'^(?P<short>\w+)/$', 'target'),
url(r'^new_link/$', 'new_link'),
url(r'^home/$', 'home'),
)
및 views.py : 수수께끼 것은 내가 url(r'^$', 'new_link'),
또는 여기
url(r'^$', 'home'),
가 내 urls.py의 내용입니다 사용할 때 모든 것이 잘 작동한다는 것입니다
from django.shortcuts import render, get_object_or_404, redirect
from mini_url.models import Mini
from mini_url.forms import MiniForm
import string, random
def generate(N):
characters = string.letters + string.digits
random_list = [random.choice(characters) for _ in xrange(N)]
return ''.join(random_list)
def new_link(request):
if request.method == 'POST':
form = MiniForm(request.POST)
if form.is_valid():
create = True
link = form.save(commit=False)
short_url = generate(10)
link.short_url = short_url
link.save()
link_string = "http://localhost:8000/m/%s/" % short_url
else:
form = MiniForm()
return render(request, 'mini_url/new_link.html', locals())
def target(request, short):
short_link = get_object_or_404(Mini, short_url = short)
short_link.counter += 1
short_link.save()
return redirect(short_link.long_url)
def home(request):
links = Mini.objects.order_by('counter')
return render(request, 'mini_url/home.html', {'links':links})
어떻게 할 수 이것을 고쳐라?
난 괜찮아가 작동 urlpatterns에 '^ $'연구에 매핑 한 다음 하나를 생성하고 데이터베이스에 추가하여 새로운 URL을 생성하기 위해 페이지에 액세스 할 수 있습니다 = '8OA1Ys97rR') 은 <미니 : http://stackoverflow.com/questions/16987392/django-no-mini-matches-the-given-query>', 문제는 내가 원한다면 페이지를 액세서 수 없다 r '을 통해 이동하려면^new_link/$' – dPhilGuy
URL 순서를 변경하십시오. 괜찮아 질 것입니다. – karthikr