在 Django 应用程序中,我有一个函数,它接受请求并解析返回结果的参数字典。
例如,像这样:
def parse_event_parameters(request):
"""
Parse the parameters for a given event
from a request and return the result
as a dictionary of strings.
"""
try:
request_params = {
'event_id': id,
'start_date': request.POST[id + '_start_date'],
'end_date': request.POST[id + '_end_date'],
'shift_type': request.POST[id + '_shift_type'],
'rec_type': request.POST[id + '_rec_type'],
'event_length': request.POST[id + '_event_length'],
'event_pid': request.POST[id + '_event_pid'],
}
except KeyError, err:
raise err
return request_params
然后,我将此字典传递给我的模型中的一个方法,以创建或更新相关事件。
e.update(**parameters)
在那里,更新方法调用一个超类,如下所示:
super(Event, self).update(event_id, start_date,
end_date, shift_type, rec_type,
event_length, event_pid, employee_id)
超类基本上验证请求的值并将它们保存到模型中。现在,我需要在我的模型中添加另一列,并且需要更新每个方法。
我对 Django 很陌生,但这似乎不是最干净的方法。
有没有更优雅的方法来解决这个问题?我应该通过每种方法保留字典而不是打开包装吗?