无法将Field.choices整数参数传递给view.py(Django)中的函数

时间:2013-02-17 22:48:48

标签: python html django django-templates django-views

我正在尝试将Field.choices整数参数传递给view.py中的函数。但是,我似乎无法做到这一点。

具体来说,就我而言,我想使用Field.choices整数参数来决定用户希望切换到的特定对象的状态。目前,我有一个视图函数用于每种类型的状态更改,它们都是相同的。因此,这样做的目标是倾向于更干的代码。

示例情况

以下是一些HTML代码(可以访问diagnostic和diagnostic_filter对象):

            <a href="{% 
              url reports.views.mark
              diagnostic.id,
              diagnostic_filter.FALSE %}" 
              class="btn"> 
              False Positive 
            </a>

最初,用户点击此类按钮/链接。

我想将整数diagnostic_filter.FALSE(这是diagnostic_filter的三种可能状态之一)传递给广义的“mark”函数:

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)

我正在使用:

将diagnostic和diagnostic_filter传递给我的模板
return render_to_response(
    'reports/diagnostic.html',
    {diagnostic,
     diagnostic_filter},
    context_instance=RequestContext(request)
)

这是解决这个问题的最好方法吗?我做错了吗?似乎当我用按钮加载页面时,我在反向'[FILE URL HERE] .mark'的行中出现错误,带有参数'(108383,Undefined)'和关键字参数'{}'not找到。

1 个答案:

答案 0 :(得分:0)

可能是您实际上有权访问diagnostic_filter对象,或者它不是DiagnosticFilter类。您收到的错误表明该模板将值diagnostic_filter.FALSE视为未定义&#39;,这很奇怪,因为您不会在模型中显示该值,而Django& #39;通常的行为是将未知属性显示为None。你能说明你如何将diagnostic_filter传递到模板吗?