AuditTrail 코드를 수정하여 ForeignKey
필드를 복사하지 않고 오히려 관련 필드를 복사합니다 (즉, 내 데이터베이스 테이블에 외래 키를 원하지 않습니다. 감사 모델).Django : AuditTrail & Lazy Relations
내가 그렇게처럼 보이는 copy_field
기능을 작성했습니다 :
def copy_field(field):
while(isinstance(field, models.OneToOneField, models.ForeignKey)):
field = field.rel.get_related_field()
if isinstance(field, models.AutoField):
f = models.IntegerField()
else:
f = copy(field)
#...snip some adjusting of fs attributes...
return f
AuditTrail
속성이 모델합니다 (class_prepared
신호를 통해) 준비 할 때이 코드가 실행됩니다. get_related_field()
호출이 실패합니다 field.rel.to
는 관련 모델의 이름이 포함 된 문자열이보다는이기 때문에, - ForeignKey
가 아직 준비되지 않은 모델에 필드에 관련 될 때
그러나,이 문제로 실행 모델 인스턴스.
나는이 문제를 해결하기 위해 무엇을 해야할지를 놓쳤다. 필드를 복사하기 전에 어떤 모델의 종속성을 확인하고 준비가 완료 될 때까지 기다려야합니까? 이 문제를 해결하는 가장 좋은 방법에 대한 아이디어가 있습니까?