gpt4 book ai didi

python - Django URL conf conf 重定向到错误的 View

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:19 29 4
gpt4 key购买 nike

为大学生编写一个应用程序——显示一个系列表,你点击一个,然后它会显示该系的类(class),点击一个,然后显示教授该类(class)的教授。

URL conf 有问题——我的应用程序不断将我重定向到错误的 View 。

所以我有 3 个模型

class Department(models.Model):
subject = models.CharField(max_length = 25)
pub_date = models.DateTimeField(auto_now_add = True)

def __unicode__(self):
return self.subject

class Course(models.Model):
department = models.ForeignKey(Department)
course_number = models.CharField(max_length = 50)
course_name = models.CharField(max_length = 100, blank = True, null = True)
c_pub_date = models.DateTimeField(auto_now_add = True)

def __unicode__(self):
return self.course_number

class Professor(models.Model):
course = models.ForeignKey(Course)
prof_name = models.CharField(max_length = 50)
p_pub_date = models.DateTimeField(auto_now_add = True)

def __unicode__(self):
return self.prof_name

然后我的应用程序 URL conf 根据 URL 转到 View 、类(class)和教授

urlpatterns = patterns('qanda.views',
url(r'^$', 'index'),
url(r'(?P<department_id>\d+)/$', 'courses'),
url(r'(?P<department_id>\d+)/(?P<course_id>\d+)/$', 'professors'),
)

所以当我访问 url mysite.com 时,它会列出数据库中的所有部门。然后单击一个部门(即数学),它将带我到 mysite.com/1 上的类(class) View ,它显示了该部门的所有类(class)。然后单击一门类(class)应将我带到教授 View mysite.com/1/1,其中显示了教授该类(class)的所有教授。

但是,当我进入类(class) View 并单击类(class)以进入教授 View 时,即使 URL 显示为 mysite.com/1/2,它实际上会将我重定向回 mysite.com/2,采取course_id(在本例中为 2)并将其误认为是 departmment_id,并将我重定向到类(class) View 。

例如,数学 101 course_id = 1。数学 102 course_id = 2。对于数学 101,有 2 位教授。 A教授professor_id = 1,B教授professor_id = 2。

因此,当单击 Math 101 时,URL 将为 mysite.com/1。之后点击 Professor B 时,URL 将为 mysite.com/1/2。然而,现在当点击教授 B 时,URl 显示 mysite.com/1/2,但将我带到 mysite.com/2。

知道为什么会这样吗?

最佳答案

你的问题是你的正则表达式太模糊了..你错过了 ^ 所以你的第一个 URL 在你的第二个有机会之前匹配。

(\d+)/$ 会匹配 /3/, foo/3/, foo/bar/baz/3

它与尾部斜杠无关。这是一个标准的 Django URL 模式。 /$

url(r'^$', 'index'),
url(r'(?P<department_id>\d+)/$', 'courses'),
# ^^^ needs ^
url(r'(?P<department_id>\d+)/(?P<course_id>\d+)/$', 'professors'),

关于python - Django URL conf conf 重定向到错误的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13758774/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com