이번에는 내가 바보가 아니라 실제 충돌이라고 생각합니다.상속과 ForeignKey를 사용할 때 Django syncdb conflicting relevant_name
from django.db import models
class Alpha(models.Model):
relation = models.ForeignKey('Delta', related_name = 'reverse_relation', blank = True, null = True)
class Meta:
abstract = True
class Beta(Alpha):
pass
class Gamma(Alpha):
pass
class Delta(models.Model):
pass
문제는 Delta.reverse_relation 베타의 인스턴스 또는 감마의 인스턴스를 참조 할 수 있다는 것입니다 : 나는 아래의 코드 (간체)가 있습니다. 나는 어떻게 든 여러 개의 related_name 값 (또는 하나의 클래스 이름에 따라 달라집니다)을 제공해야합니다. 문제가 명확하지만 완벽하게하려면 (syncdb를 실행할 때) 오류라고 생각합니다 : app.beta : Accessor for 'relation' 관련 필드 'Delta.reverse_relation'과 충돌합니다. related_name 인수를 'relation'에 대한 정의에 추가하십시오.
app.beta : 'relation'필드의 역 검색어 이름이 'Delta.reverse_relation'관련 필드와 충돌합니다. related_name 인수를 'relation'에 대한 정의에 추가하십시오.
app.gamma : 필드 'relation'에 대한 접근자가 관련 필드 'Delta.reverse_relation'과 충돌합니다. related_name 인수를 'relation'에 대한 정의에 추가하십시오.
app.gamma : 'relation'필드의 역방향 쿼리 이름이 'Delta.reverse_relation'관련 필드와 충돌합니다. related_name 인수를 'relation'에 대한 정의에 추가하십시오.
ForeignKey를 상위 알파에 배치 할 수 있습니까? 아니면이 코드를 베타와 감마로 잘라내어 붙여 넣을 수있는 유일한 방법입니까? 부모님이 모든 아이들이 공유하는 분야를 정의 할 수 없다면 유산 상속의 대상이 될 수 없으므로 그렇게하지 않는 것이 좋습니다.
도움이 많이 접수되었습니다.
(사람이 오류 메시지가 코드 상자에없는 이유에 대해 언급 할 수 있다면 나는 그것을 고칠 수 있습니다.)
내 자신을 찾을 수 ... 행운의
최저 : https://docs.djangoproject.com/en/1.7/topics/db/models/#be-careful-with-related-name
는 본질적으로 관계 필드의 선언을 변경 Google을 통해 다시 질문하십시오. 내가 인정하고 싶은 것보다 더 많이 일어난다. – Mark