나는이 (잘하면) 간단한 문제를 풀려고 노력하고 있습니다.Django-Nonrel의 OneToOneField 릴레이션에서 파생 클래스에 올바르게 액세스하기
저는 Django-nonrel을 사용하고 있으며 몇 가지 모델을 설정하려고합니다. 내가 Site
의 인스턴스를 얻을 때
class Application(models.Model)
name = "Application"
def get_name(self):
print(self.name)
class ExampleApp(Application)
name = "Example Application"
class Site(models.Model)
app = models.OneToOneField(Application, null=True)
id = models.CharField(max_length=1)
# other details not important
, 나는 (예 : ExampleApp
)
class MyView(View):
def get(self, request, *args, **kwargs):
# Presuppose that I have an object with id="a"
site = Site.objects.filter(id="a")
#<Application: Application>
app = site.app
#returns "Application", not "Example Application"
app.get_name()
가 어떻게 액세스 할 수있는 파생 클래스의 인스턴스를 얻기 싶습니다 : 나는 아래의 코드를 단순화했습니다 파생 클래스?
(이상적으로, 나는 추상 기본 클래스로 Application
을 싶지만, 장고는 추상 기본 클래스에 관계가. 나는 Application
내부 필드를 정의 것이지만, 장고 nonrel을 멀티 테이블 상속을 지원하지 않습니다 허용하지 않습니다.)
분명히 * 내가 좋아하는 것 같습니다. 장고 - 언렐에서이 작품이 작동하는지 여부에 대한 아이디어가 있습니까? – NT3RP
나는 그것을 시도하지는 않았지만 djanog-nonrel (NoSQL을 사용한 구현 일 뿐이다)과 함께 작동 할 것이라고 상상해 보았다. NoSQL 지원과 관련이 없어야한다. – Furbeenator
해결책은 현재 상황에 적용되지 않습니다. 다형성 모델은 관계를 나타낼 때 특별한 것을 수행하지 않는 것처럼 보입니다. 또한 기본 클래스를 PolymorphicMetaClass로 만들면 다운 캐스트하려고 할 때 오류가 발생합니다. '다중 테이블 상속은 비 관계형 DB에서 지원되지 않습니다 .' – NT3RP