는이 같은 코드를 작성하고 싶었다. 장고 코드는 매우 분명하다확인 nullable이 아닌 필드가 null의 경우 (장고)
class ReverseSingleRelatedObjectDescriptor(object):
def __get__(self, instance, instance_type=None):
...
if val is None:
# If NULL is an allowed value, return it.
if self.field.null:
return None
raise self.field.rel.to.DoesNotExist
나는이 문제가 이전에 제기 된 거의 확신은, 그러나 어떻게 든 내가 특정 유스 케이스와 일치합니다 아무것도 찾을 수 없습니다. 확실한 해결 방법은 당연히 필드를 nullable로 만들지 만 실제로 데이터베이스 스키마에 영향을 미칠 것이라는 것을 이해하고 Django가 제공하는 무결성 검사가 마음에 든다. 또 다른 하나는 예외를 잡아 적절하게 처리하는 것입니다. 그러나 이것은 상용구 코드를 많이 추가합니다. 특히 여러 개의 필드가있는 경우 (각 블록에 대해 별도의 try...except
블록 - 지금은보기 흉한 경우). 너는 무엇을 제안 하겠는가?
편집 : 또 다른 것은 - 그것은 외래 키에 올 때 나는 initial
그러나이 상당히 제한되어 사용할 수 있습니다. 나는 창조의 순간에 갖고 싶은 디폴트의 종류를 항상 알지 못한다. 나는 초기화 단계에서 그것을 알 것이다. 또한 다른 분야의 가치에 의존 할 수 있습니다. 이 속성 세트가있는 경우
나는 그것이 'hasattr (자기,'field ')'이어야한다고 생각하지만, 그렇지 않으면 작동한다. 감사. – julkiewicz
hasattr이 2 개의 인수를 가져올 것으로 예상 됨 3 –