2013-03-15 4 views
0

장고 응용 프로그램 내에서 요청을 가져 와서 결과를 반환하는 매개 변수를 구문 분석하는 함수가 있습니다. 예를 들어키워드 인수/사전

,이 같은 : 다음 만들거나 해당 이벤트를 업데이트하거나 내 모델 내에서 방법이 사전을 통과하고있어

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 

.

super(Event, self).update(event_id, start_date, 
      end_date, shift_type, rec_type, 
      event_length, event_pid, employee_id) 

슈퍼 클래스는 기본적으로 요청의 값을 확인하고 모델에 저장합니다 다음과 같이

e.update(**parameters) 

는 일단 거기, 업데이트 방법은 수퍼 클래스를 호출합니다. 이제 모델에 다른 열을 추가하고 각 메소드를 업데이트해야합니다.

저는 장고를 처음 접했지만이 방법이 가장 깨끗한 것처럼 보이지 않습니다.

좀 더 우아한 접근 방법이 있습니까? 각 방법을 통해 사전을 유지해야하며 압축을 풀어야합니까? 당신이 ModelForms를 사용한다처럼

+0

을 (HTTP : //codereview.stackexchange .com /), 코드 및 스타일 작업에 대해 이야기하고 있습니다. –

답변

2

는 소리 :

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform

을 일반적으로, 당신은, 당신은 그것을 확인하는 양식을 사용하는 것이 좋습니다 요청 데이터를 처리 (POST 또는 GET 또는 무엇이든) 할 때마다. Django 양식은 실제 상황이 많은 상황에서 작동 할 데이터 유효성 검증 API 일 때 실제 HTML 양식을 표시하기위한 것일뿐입니다. ModelForm은 한 단계 더 나아가 Django 폼을 모델 클래스에 바인딩하고 모델을 생성하거나 업데이트합니다 (폼에 save()을 호출 할 때).

당신이 ModelForms을 이해하면 그런 다음, 모델 생성 및 업데이트를위한 장고의 일반적인 견해로보고 고려 :이 [코드 검토]에 더 적합 할 것입니다 느낌이

https://docs.djangoproject.com/en/1.5/topics/class-based-views/generic-editing/