我试了很多次,但都没有找到确切的答案。 我想更改列表的URL,该列表是由HTML中的for循环生成的。 以下是views.py文件中该视图的代码:
class DashboardHomeViewClass(View):
def get(self, request, *args, **kwargs):
device_objects = device_user_data.objects.filter(User_Name = request.user.username)
device_list = []
for device in device_objects:
device_list.append(device.Device_Alias_Data)
context_logged = {'device_list': device_list}
return render(request, "dashboardhometemplate.html", context_logged)
下面是在HTML模板中使用此上下文的代码:
{%for item in device_list%}
<li> <a href="#" aria-expanded="false"><i class="fa fa-bar-chart"></i><span class="hide-menu">{{item}}</span></a>
{% endfor %}
现在我需要的是:根据设备别名数据,单击不同的列表视图项,就会打开不同的链接
例如:http://127.0.0.1:8000/dashboard/{{Device\u Alias\u Data}}
其中Device\u Alias\u Data是数据库中名为Device\u user\u Data的表中的字符变化字段
这是我的url.py文件:
from django.conf.urls import url
from django.contrib import admin
from dashboardhome.views import DashboardHomeViewClass
from dashboardhome.views import login_view
from django.contrib.auth.views import login
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/$', login ,{'template_name': 'login_template.html'}),
url(r'^dashboard/$', DashboardHomeViewClass.as_view()),
]
通过导入django.url.reverse,可以在model.py中使用def get \u absolute \u url()方法 并使用url名称
首先,您应该对
urls.py
文件进行一些调整,以使其正常工作:这里我们添加了
url
方法的app\u name和name属性,这样我们就可以利用DjangoReverse Resolution of urls之后,您可以使用template builtin^{} 标记,如下所示:
这会产生一个如下的网址:
请务必查看链接以获取更多信息
我希望这会有帮助
相关问题 更多 >
编程相关推荐