0

django 모델에서 일반 파이썬 클래스를 상속받을 수 있다면 이해하려고합니다. 아이디어는 모델과 시스템의 다른 부분 (몽고와 함께 작동하는)에 공통 인터페이스가 필요하다는 것입니다.Django 모델에서 파이썬 객체 상속

의 예는 다음과 같습니다

class myC(object): 
    def __init__(self): 
    self.f = "test" 

class myM(myC, models.Model): 
    name = models.CharField(max_length=50) 

나를 위해 정말 불가능하며 더 많은 모델에서 myC 상속을 제작하고 추상적 만들기. 그래서 궁금합니다. myM에 대한 표는 어떻게 될 것입니까 (만약 내가 할 수있는 것이 가능하다면).

답변

0

예 일반 클래스에서 모델을 상속 할 수 있습니다. 예를 들어, 귀하의 모델에 맞는 믹스를 만드십시오.
이 믹스 인 때마다 당신이 모델을 저장 / 필드 url에없는 추가합니다 :

class ModelURLSaveMixin(object): 

    def save(self, *args, **kwargs): 
     if not self.url.startswith('/'): 
      self.url = '/' + self.url 
     if not self.url.endswith('/'): 
      self.url = self.url + '/' 
     super(ModelURLSaveMixin, self).save(*args, **kwargs) 


class MyModelWithUrlField(ModelURLSaveMixin, models.Model): 
    ... 

을하지만 당신은 당신의 프로젝트에 여러 모델에 공통 인터페이스를 구축하려는 경우 추상 클래스 솔루션은 더 좋을 것이다