2015-12-21 72 views
3

我有从pinax-referrals包创建引荐的问题。推荐类有类函数来创建(...)当我试图内景如创建复诊:未找到类功能

from pinax.referrals.models import Referral 

def createReferral(user): 

    referral = Referral.create(
     user = user, 
     redirect_to = "/" 
    ) 

这引发了我以下错误:

type object 'Referral' has no attribute 'create'

Pinax模型中的代码看起来不错:

@classmethod 
def create(cls, redirect_to, user=None, label="", target=None): 
    if target: 
     obj, _ = cls.objects.get_or_create(
      user=user, 
      redirect_to=redirect_to, 
      label=label, 
      target_content_type=ContentType.objects.get_for_model(target), 
      target_object_id=target.pk 
     ) 
    else: 
     obj, _ = cls.objects.get_or_create(
      user=user, 
      label=label, 
      redirect_to=redirect_to, 
     ) 

    return obj 

据我所知,问题是没有连接到Pinax包本身,看起来很奇怪。有人有任何想法吗?

+3

你可以显示你的进口? –

+0

我刚刚编辑了这个问题..导入也可以从pinax.referrals.models导入引用,ReferralResponse –

+3

您发布的导入和'createReferral'方法看起来不错。模块中是否还有其他可以覆盖'Referral'的内容?你有没有定义另一个类'推荐'。你正在从模块中的'x import *'执行吗? – Alasdair

回答

1

听起来好像您已经在同一个模块中定义了另一个类Referral,该模块取代了Pinax的Referral模型。

这可能发生,因为你已经定义的类,

class Referral(View): 
    ... 

或者也许你已经导入另一个类Referral。如果您执行*导入,则可能不太明显。

from mymodule import * 

一个有用的工具来调试是增加print(Referral)给您查看。然后你会看到Referral班是否是你期望的班。