我正在尝试将Field.choices整数参数传递给 view.py 中的函数。但是,我似乎无法完成这项工作。
具体来说,就我而言,我想使用 Field.choices 整数参数来决定用户希望特定对象切换到哪个状态。目前,我对每种类型的状态变化都有一个视图函数,它们都是相同的。因此,这样做的目标是倾向于更 DRY 的代码。
示例情况
这是一些 HTML 代码(可以访问诊断和诊断过滤器对象):
<a href="{%
url reports.views.mark
diagnostic.id,
diagnostic_filter.FALSE %}"
class="btn">
False Positive
</a>
最初,用户点击这种类型的按钮/链接。
我想将整数 diagnostic_filter.FALSE(它是 diagnostic_filter 的三种可能状态之一)传递给一个广义的“标记”函数:
def mark(request, diagnostic_id, state):
#Code to change state...
如图所示,这个“标记”功能应该通过并将诊断过滤器对象(与诊断对象相关)的状态更改为 FALSE。
这是我在 urlconf.py 中相应行的尝试:
url(r'^diagnostic/(?P<diagnostic_id>\d+)/(?P<state>\d+)/$', 'mark'),
这是我在 models.py 中的 diagnostic_filter 类的模型:
class DiagnosticFilter(models.Model):
FALSE = 1
LOW = 2
HIGH = 3
STATES = (
(FALSE, 'False Positive'),
(LOW, 'Low Priority'),
(HIGH, 'High Priority'),
)
state = models.IntegerField(choices=STATES)
我正在使用以下方法将诊断和诊断过滤器传递给我的模板:
return render_to_response(
'reports/diagnostic.html',
{diagnostic,
diagnostic_filter},
context_instance=RequestContext(request)
)
这是解决这个问题的最好方法吗?我做错什么了吗?似乎当我使用按钮加载页面时,我在“[FILE URL HERE].mark”的“[FILE URL HERE].mark”行中出现错误,参数“(108383,未定义)”和关键字参数“{}”未找到。