2014-10-30 69 views
0

Django似乎并没有很好地区分我的网站。如果我想显示我的照片/添加页面,则必须删除照片/网址,否则Django将始终返回相同的“照片列表”网​​址。URL与Django混淆

urls.py

from django.conf.urls import patterns, url 
from django.conf import settings 
from django.conf.urls.static import static 

from photo import views 


urlpatterns = patterns('', 
    url(r'$', views.ListImage.as_view(),name ='Photo-List',), 
    url(r'add$', views.ImageCreate.as_view(), name = 'create-image',), 
    url(r'display/(?P<pk>\d+)/$', views.ImageView.as_view(),name='image-view',), 
    url(r'update/(?P<pk>\d+)/$', views.ImageUpdate.as_view(),name='image-update',), 

) 

if settings.DEBUG: 
    urlpatterns += static(settings.STATIC_URL, 
          document_root = settings.STATIC_ROOT) 
    urlpatterns += static(settings.MEDIA_URL, 
          document_root = settings.MEDIA_ROOT) 

views.py

from django.views.generic import ListView, DetailView, UpdateView, CreateView, UpdateView, DeleteView 
from django.core.urlresolvers import reverse_lazy, reverse 
from photo.models import Tag, Image, Album 
from django.conf import settings 

class ListImage(ListView): 
    #context_object_name = 'object_list' 
    template_name = 'image_list.html' 
    model = Image 

class ImageView(DetailView): 
    model = Image 
    template_name = 'image.html' 

class ImageCreate(CreateView): 
    model = Image 
    template_name='image_create.html' 
    fields = ['title','image'] 
    success_url=reverse_lazy('create-image') 

此外,其他主要的问题,我不能让我的详细信息视图的工作。如果我尝试访问照片/显示/ 2,我会得到一个404,表示没有图像与查询匹配。这对我来说是一个非常重要的项目,我真的希望有人能帮助我。添加我的models.py在那里以防万一

from django.db import models 
from django.contrib.auth.models import User 
from django.core.urlresolvers import reverse_lazy, reverse 
from django.contrib import admin 
from django.conf import settings 
from string import join 
import os 


class Album(models.Model): 
    title = models.CharField(max_length=60) 
    public = models.BooleanField(default=False) 
    def __unicode__(self): 
     return self.title 
    def images(self): 
     lst = [x.image.name for x in self.image_set.all()] 
     lst = ["<a href='/media/%s'>%s</a>" % (x, x.split('/')[-1]) for x in lst] 
     return join(lst, ', ') 
    images.allow_tags = True 

class Tag(models.Model): 
    tag = models.CharField(max_length=50) 
    def __unicode__(self): 
     return self.tag 

class Image(models.Model): 
    title = models.CharField(max_length=60, blank=True, null=True) 
    image = models.FileField(upload_to="images/") 
    tags = models.ManyToManyField(Tag, blank=True) 
    albums = models.ManyToManyField(Album, blank=True) 
    created = models.DateTimeField(auto_now_add=True) 
    rating = models.IntegerField(default=50) 
    width = models.IntegerField(blank=True, null=True) 
    height = models.IntegerField(blank=True, null=True) 
    user = models.ForeignKey(User, null=True, blank=True) 

回答

1

我想this answer可能的帮助。尝试添加一个最初的脱字符('^')到您的URL正则表达式

+0

谢谢查尔,我会尝试今晚。你认为这是为什么它不会在我的详细视图中选择? – 2014-10-30 14:09:10