我是django的新手,我试图设计一个网页,其中项目部分将包含所有项目,在同一页面上将有模块部分和在该模块部分下将有提交。 现在,我想要的是当用户点击某个项目时,模块部分应该使用该项目下的模块进行更新。我能做到这一点。 (Here是您需要引用的所有内容,您可能需要跳转到Feed应用程序) 但问题是,我在我的ajax中使用它来更新模块部分。
$('#module_section').html(data);
现在index.html不知道我的模块部分中的show details按钮(因为它是从detail.html检索的,我的detail.html有show details按钮,它将显示在该模块下完成的提交)当我在index.html页面的模块部分按下show details按钮时,显然没有任何反应。 我需要一个javascript / ajax,它可以做一个查询,比如“select * from module where project_id ='some_id'”(不确定语法),然后相应地更新我的模块部分,以便当有人点击显示详细信息时在模块部分,他将能够看到在该模块下完成的提交。
任何建议都将受到高度赞赏,< 3提前。
答案 0 :(得分:1)
在单独的模板中创建html模块。假设你有“index.html”和“details.html”。假设这两个都有一个显示提交的模块(称之为“提交模块”)。
假设您希望模块显示提交列表。您将创建一个以JSON格式返回提交列表的视图/ URL。然后创建一个javascript函数,使用ajax调用这个url端点并将数据插入到你的html模块中(我建议使用jquery来处理所有这些因为它比使用vanilla javascript更容易使用)。
现在在模块javascript文件中创建一个init函数,以进行所需的调用以填充模块并设置事件触发器和事件。
现在将模块模板包含在主模板中(index.html,details.html等)。确保在页面加载后在某处调用init函数。
您的代码将具有以下布局:
api (models/views/urls)
A | (JS calls api to perform actions and retrieve data)
| V
javascript
| (Puts results from api into the modules html)
V
html
使用此解决方案,您可以在所需的任何模板中包含({% include 'module_commits' %}
)模块,然后在该模块的javascript中调用init函数,它将在任何页面上运行。只需确保您的html ID不与其他人冲突。