2014-10-11 1 views
0

동일한 앱에서 2 개의 모델을 사용해도 괜찮 았지만 두 모델을 각각 다른 클래스로 이동하면 각각 ForeignKey를 얻을 수 없습니다. 일하는 것 같습니다. 문제의 모델 :Django TypeError : 'bar'는이 함수에 대한 잘못된 키워드 인수입니다.

from app1.models import Bar 

class Foo(models.Model): 
    name = models.CharField('...............') 
    bar = models.ForeignKey(Bar, editable=False, verbose_name=_('Bar')) 

그러나 내가하려고하면

>>>f = Foo(name='name', bar=existing_bar).save() 

내가

TypeError: 'bar' is an invalid keyword argument for this function 

임 장고와 MongoDB를을 사용하여 얻을. 왜 그들이 동일한 애플 리케이션에 있었을 때 완벽하게 작동했는지 이해할 수 없지만 지금은 그렇지 않습니다./

foo 문서에 bar_id 필드가 있고 현재 가치가없는 것을 발견했습니다.

+0

난독 화 된 버전이 아닌 실제 모델을 제공 할 수 있습니까? – skzryzg

답변

0

내가 거기에 장고 문서에서 언급 한 것일 수 있지만 지금은 당신이 작업을 계속하기 위해 __init__를 제공 할 수 있습니다, 이런 일이 왜 정말 확실하지 않다 - 파이썬 3 +

class Foo(models.Model): 
    name = models.CharField('...............') 
    bar = models.ForeignKey(Bar, editable=False, verbose_name=_('Bar')) 

    def __init__(self, *args, bar=None, **kwargs): 
     super().__init__(*args, **kwargs) 
     self.bar = bar 
에 대한

for python 2.6+

class Foo(models.Model): 
    name = models.CharField('...............') 
    bar = models.ForeignKey(Bar, editable=False, verbose_name=_('Bar')) 

    def __init__(self, *args, bar=None, **kwargs): 
     super(Foo, self).__init__(*args, **kwargs) 
     self.bar = bar 
관련 문제