2013-04-10 3 views
1

내 django app의 models.py에서 가져온 Python 모듈 pyisbn에서 models.Model과 Isbn10 클래스를 상속받습니다. 그러나 클래스의 인스턴스를 만들려고하면 TypeError가 발생합니다. __init __()은 정확히 2 개의 인수 (주어진 값 1)를가집니다.django 생성자 문제 다중 상속 모델

부모 클래스 순서를 뒤집어 봤지만 도움이되지 않았습니다.

모델 : (pyisbn 모듈에 정의)

from django.db import models 
import pyisbn 

class Book10(pyisbn.Isbn10, models.Model): 
    pass 

ISBN 클래스 정의 :

class Isbn(object): 
    def __init__(self, isbn): 
     super(Isbn, self).__init__() 
     self._isbn = isbn 
     if len(isbn) in (9, 12): 
      self.isbn = _isbn_cleanse(isbn, False) 
     else: 
      self.isbn = _isbn_cleanse(isbn) 

답변

2

귀하의 초기화() 정의 자기와 ISBN 모두 필요합니다. 그래서 둘 다 통과해야합니다. 또한 self는 항상 첫 번째 인수 여야합니다.

+0

새 인스턴스를 만들 때 Isbn (self, '9780887276309')이 필요하다는 의미입니까? 작동하지 않습니다. Isbn 클래스는 django와 관련이없는 제 3 자의 파이썬 모듈 인 pyisbn에 정의되어 있습니다. – geeljire