Django NoReverseMatch at/guardian/guardian主页/

Django NoReverseMatch at/guardian/guardian主页/,django,Django,请随时询问有关此项目的更多信息。我在这里做错了什么。。。。请帮忙 我提供了带有错误页面图片的模型、URL和视图图片 base.html url.py 型号 hireapp/url.py 视图.py 错误 我再给你一次。在“漂亮”图像中,错误消息是: 错误:NoReverseMatch位于/guardian/guardianhomepage/ 在模板中的第行: {%url'guardian:guardian\u profile\u update'guardianprofiles.id%}

请随时询问有关此项目的更多信息。我在这里做错了什么。。。。请帮忙 我提供了带有错误页面图片的模型、URL和视图图片

base.html url.py

型号

hireapp/url.py

视图.py

错误


我再给你一次。在“漂亮”图像中,错误消息是:

错误:NoReverseMatch位于/guardian/guardianhomepage/ 在模板中的第行:

{%url'guardian:guardian\u profile\u update'guardianprofiles.id%}

这意味着,Django试图解析url,但找不到它。为什么?

在URL.py中,您通常会使用例如:

path(‘guardian/guardianprofileupdate/<int:id>/’, guardian.GuardianProfileUpdate.as_view(), name=‘guardian_profile_update’)
等等。。。否则Django正在寻找一个名为guardian的应用程序,该应用程序不存在,因此无法解析


命名的URLhireapp:guardian:guardian\u profile\u update将在名称空间
guardian
中查找名为
guardian\u profile\u update
的模式,该模式本身在顶级名称空间
hireapp
中定义,正如前面所提到的那样,很难按照发布的方式读取代码,因此如果您在文本编辑器中输入,而不是在发布屏幕截图中输入,则会有所帮助。基本上,问题是没有传递任何参数,因为视图不知道您要的是哪个GuardianProfile。您可能会认为是这样,因为用户已登录,所以它可能会自动了解哪个GuardianProile与哪个用户相关,但它不起作用,因为您指定的关系是一个foreignkey,因此用户可以有多个配置文件。你可以考虑从用户到监护人/导师的关系到一对一的关系,然后你可以使用Us.GuangdiaPrimel.ID访问ID。(不确定它是如何与camelcase一起工作的)我会这样做,因为我认为每个用户只需要一个监护人或导师档案

尝试更改GuardianProfile和TutorProfile模型中的用户字段:

user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.PROTECT,)

进行迁移,迁移,然后尝试访问id。

我们需要查看您的模板文件。似乎
guardianprofiles
variable.base.html已经给出了,但有些地方出了问题。你能说得具体点吗。你展示了其中一部分的截图。此外,只发布屏幕截图确实很难在代码中找到内容。问题不在于URL定义。它包含传递到模板的数据。该错误似乎源于
GuardianHomepage
视图。该视图中没有任何内容将
guardianprofiles
作为上下文变量传递(它仅使用
tutors
)。那么我猜是由装修师负责的?如果是这样的话,请将其粘贴到@BlackBoxSql@Zollie我通过标记将guardian和tutor类型的用户分开,我希望在登录后应用程序会自动识别该用户,并限制彼此访问其他URL
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.PROTECT,)