2016-09-14 7 views
-2

Я пытаюсь использовать эту ссылку <a href="Annotation/{{ vod.id }}">, чтобы загрузить другую страницу на моем веб-сайте на первичный ключ видео. Мой файл URL выглядит следующим образом:

urlpatterns = [ 
    url(r'^$', ListView.as_view(queryset=Vod.objects.all().order_by("-date")[:25], template_name="Annotation/home.html")), 

    url(r'^(?P<pk>\d+)$', ListView.as_view(queryset=Vod.objects.get(pk=1).posts.all().order_by("-date"), template_name="Annotation/post.html")), 
] 

я получаю стандартные 404 из звеньев, полученных с использованием указанной выше ссылки.

Спасибо!

редактирования: Добавлены базовые URL-адреса

url(r'^admin/', admin.site.urls), 
url(r'^Annotation', include('Annotation.urls')), 
url(r'^Profile', include('Profile.urls')), 

Это URL для Profile.urls

url(r'^$', views.index, name='index'), 

edit2: Измененный URL и добавил вид, который я пытаюсь использовать.

url(r'^(?P<key>[0-9]+)$', views.post, name="post") 

Вот views.post

def post(request, key): 
try: 
    target_vod = Vod.objects.get(pk=key) 
except Target.DoesNotExist: 
    raise Http404("Vod does not exist") 
target_posts = Vod.objects.get(pk=key).posts.all().order_by("-date") 
context = {'target_vod': target_vod, 'target_posts': target_posts} 
return render(request, 'Annotation/post.html', context) 
+0

Вы можете начать здесь: https://docs.djangoproject.com/en/1.10/topics/http/urls/ – kaveh

+1

Пожалуйста, укажите базовый urls.py, в который вы вставляете эти URL-адреса. Важно видеть, как укладываются URL-адреса. – Soviut

+0

'Annotation/id! =/Id', как он должен совпадать? – Sayse

ответ

0

Я отделено код и поместить его в views.py. Это должно сработать.

urls.py

url(r'^(?P<pk>[0-9]+)$', AnnoList.as_view(), template_name="Annotation/post.html")), 

Тогда в views.py:

class AnnoList(ListView): 

    template_name = 'Annotation/post.html' 

    def get_queryset(self): 
     self.vod = get_object_or_404(Vod, pk=self.args[0]) 
     return Posts.objects.filter(vod=self.vod).all().order_by("-date") 

Я себя здесь, что у вас есть две различные таблицы и сообщений имеет внешний ключ к води.

+0

Если вы посмотрите на мое второе редактирование, я внедрил что-то похожее на это. Тем не менее, я все еще получаю 404. – user6047990

+0

Попробуйте отладить. Внесите «print (key)» в некоторые моменты, чтобы увидеть, где проблема. Кроме того, эта запись доступна в любом случае? Если у вас нет записи Vod в вашей базе данных с этим pk, вы всегда получите ошибку 404. – 1GDST