也请随时询问有关此项目的更多信息。我在这里做错了什么....请帮助 我提供了带有错误页面图片的模型,URL和视图图片
模型
hireapp / urls.py
views.py
错误
答案 0 :(得分:0)
我再给一次。在您的“漂亮”图像中,错误消息为:
错误:/ guardian / guardianhomepage / 中的NoReverseMatch 模板中的行:
{% url 'guardian:guardian_profile_update' guardianprofiles.id %}
这意味着 Django尝试解析URL ,但找不到它。为什么?
通常在urls.py中使用例如:
path(‘guardian/guardianprofileupdate/<int:id>/’, guardian.GuardianProfileUpdate.as_view(), name=‘guardian_profile_update’)
它将解决。但是,您可以使用应用程序的命名空间和实例定义网址格式。当您尝试获取网址时,模板中哪些未反映。应用程序的实例名称空间是hireapp
,urlpatterns的名称空间是guardian
因此,如果您在模板中调用网址,则应这样调用:
{% url 'hireapp:guardian:guardian_profile_update' guardianprofiles.id %}
以此类推...否则,Django正在寻找名为 guardian 的应用程序,该应用程序不存在,因此无法解决。
命名URL hireapp:guardian:guardian_profile_update 将在名称空间guardian_profile_update
中查找名为guardian
的模式,该模式本身在顶级名称空间{{1 }}。
答案 1 :(得分:0)
如前所述,很难以代码的方式阅读代码,因此如果您在文本编辑器中输入代码而不是屏幕截图,这将很有帮助。基本上,问题在于没有传递任何参数,因为视图不知道您要使用哪个GuardianProfile。您可能会认为这是因为用户已登录,所以它可能会自动了解哪个GuardianProile与哪个用户相关,但是由于您指定的关系是外键,因此该用户无法使用,因此该用户可以具有多个配置文件。您可以考虑将用户配置文件与监护人/教师配置文件之间的关系更改为一对一,然后可以使用user.guardianprofile.id访问该ID。 (不确定它在驼峰环境中的工作方式)我就是这样做的,因为我认为您每个用户只需要一个Guardian或Tutor个人资料。
尝试在GuardianProfile和TutorProfile模型中更改用户字段:
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.PROTECT,)
进行迁移,迁移,然后尝试访问ID。