Django : 외래 키 충돌에 대한 역방향 접근 자


113

기본 클래스에서 상속하는 두 개의 Django 모델이 있습니다.

- Request
    - Inquiry
    - Analysis

요청에는 기본 제공 사용자 모델에 대한 두 개의 외래 키가 있습니다.

create_user = models.ForeignKey(User, related_name='requests_created')
assign_user = models.ForeignKey(User, related_name='requests_assigned')

어떤 이유로 오류가 발생합니다.

Reverse accessor for 'Analysis.assign_user' clashes with reverse accessor for 'Inquiry.assign_user'.

내가 읽은 모든 것은을 설정 related_name하면 충돌을 방지해야한다고 말하지만 여전히 동일한 오류가 발생합니다. 왜 이런 일이 일어날 지 생각할 수 있습니까? 감사!


1
당신은 다음과 같은 모델 정의를 게시하시기 바랍니다 수 InquiryAnalysis와의 관계Request
dm03514

Django 1.9의 관련 이름에 대한 링크 업데이트
Seb

답변:


138

related_name필드가 서로 충돌되지 않았 음을 확인,하지만 당신은 그 분야의 모두가 각각의 두 가지 모델을 가지고있다. 구체적인 모델의 이름을 각 모델에 넣어야합니다. 특수한 문자열 대체로 수행 할 수 있습니다 .

 create_user = models.ForeignKey(User, related_name='%(class)s_requests_created')

1
답변의 링크가 죽었습니다.
Matt D

2
@MatthewDrill 수정을 위해 수정을 제출했습니다. 그 동안 docs.djangoproject.com/en/1.10/topics/db/models/…를
Ivan

좋은 대답입니다! 감사합니다!
Tms91
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.