2013-02-07 2 views
1

나는 장고에 상당히 독특한 문제가 있습니다.양식의 변수 열/필드 이름이있는 고유 한 python/django 문제

큰 데이터를 편집하기위한 웹 사이트 사용자 인터페이스를 제공합니다. 이 데이터의 각 행은 데이터베이스의 행을 나타냅니다. 또는 특정 유형의 개체.

사용자가 테이블의 셀을 클릭하면이 필드/열 값을 편집 할 수있는 양식이 열립니다.

본질적으로 다음과 같이 작동합니다. 1) 사용자가 클릭 한 위치를 기반으로 쿼리가 서버 객체 ID 및 편집중인 필드로 전송됩니다. 이 정보 양식을 기반으로 2) 즉석에서 만들어집니다 필드가 변수가

class FieldEditorForm(forms.ModelForm): 
    class Meta: 
     model = MyObject 
     fields = ['id', field ] 

사항은 필드의 이름을 수 없습니다.

3)이 필드는 자체 modelform 유효성 검사를 통과하며 모두 정상입니다. 저장 메소드 Model.save()는 값을 갱신하기에 충분합니다.

하지만 이제 문제가 생겼습니다. 때로는 빈 값이이 양식의 서버로 전송됩니다. u와 같은 empy 값 또는 거의 같은 emtpty. NULL로 데이터베이스에 저장 될 수 있도록 None으로 repace하고 싶습니다.

내가 할 수있는 곳이 두 곳 있습니다. 필드 유효성 검사에서 cleaned_data 또는 양식 저장 방법을 수정 중입니다.

가변 함수 이름을 만드는 방법을 모르는 두 가지 방법으로 고유 문제가 발생합니다. 방법

r.%(field)s = None 

저장

def clean_%(field)s(): 

또는 양식의 경우 내가 필요하지만, 그 방법은 일을 해달라고 것입니다. 그래서 어떻게 변수 또는 뭔가 개체 변수를 매개 변수를 설정할 메서드 이름을 만들 수 있습니다. 그것은 가능합니까 아니면 내 접근 방식을 다시 생각해야합니까? 후자의 경우 앨런

답변

2

, setattr(r, field + 's', None).

+0

가끔은 내 마음을 정리하는 방법으로 stackoverflow를 사용하는 것 같습니다. 나는 조금 후에 나 자신을 해결하기 위해서만 질문을 던졌다. 그러나 같은 시간 - 만약 내가 이것을하지 않았다면 나는 그것을 해결하지 못했을 것입니다 ... 어쨌든 아마 어쨌든. 내가 만든 것은 myobject입니다 .__ setattr __ (필드, 없음) –

관련 문제