django - 将参数从视图传递到锚标记的最佳方法是什么?
问题描述
我正在构建一个仪表板,该仪表板在侧边栏上有一个按钮,允许用户更新他们的数据。目前看起来像这样:
<a class="nav-link" href="{% url 'form-update' pk=id %}"> Questionnaire </a>
我正在尝试将该id
字段连接到我的views.py
:
def dashboard(request):
user = request.user
account = 0
id = Form.objects.filter(author=user,account=account).values('id').get('id')
context = {
'id':id
}
return render(request, 'dashboard/index.html',context)
网址模式:
path('update/<int:pk>', FormUpdateView.as_view(),name='form-update')
我不确定将此数据发送到 href 标签的最佳方式?
编辑 这似乎是一个问题,因为此仪表板 html 文件是我与其他模板一起使用的基本 HTML 文件。如果我在子模板中加载数据而不是加载正常,而不是在父 html 文件中加载。
解决方案
如果有人偶然发现这一点,那么问题实际上来自将变量传递给基本 HTML 文件。在这种情况下,您必须在您的应用程序 ( context_processors.py
) 中创建一个文件,然后在其中创建一个函数:
def add_variable_to_context(request):
user = request.user
account = 0
pk = Form.objects.filter(author=user,account=account).values('id').last().get('id')
return {
'id': pk
}
settings.py
然后在context_processors中注册这个 py 文件。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'dashboard.context_processors.add_variable_to_context',
],
},
},
]
然后,您可以以正常方式调用该变量。
<a class="nav-link" href="{% url 'form-update' pk=id %}">Questionnaire</a>
推荐阅读
- python - 使用 Spark DataFrames 对多个字符串分类特征进行 one-hot 编码
- c# - Lerp 没有平移而是直接移动物体
- terraform - 有没有办法在 terraform 中忽略 vsphere 数据存储端的磁盘配置更改?
- go - Golang - 为什么总是 ItoA 在返回字符串时删除初始 0
- c++ - 一个关于字符串最大子序列的程序
- python - 在几个不同的文件路径上运行循环
- python-3.x - 打印不带括号和逗号的列表和另一个变量
- python - 替换数据框中缺失的日期,我应该使用零、最小日期还是平均值?
- c++ - 为什么 Gun *gun=&machinegun 有效,但 *gun=&machinegun 无效?
- c# - 单选按钮列表选择的不连贯回发行为