找不到类功能

时间:2015-12-21 13:57:07

标签: python django pinax

我有从pinax-referrals包创建Referral的问题。引用类有类函数create(...)当我试图在视图中创建引用时:

from pinax.referrals.models import Referral

def createReferral(user):

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

它引发了以下错误:

  

类型对象'引荐'没有属性'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包本身无关,看起来很奇怪。有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

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

这可能是因为你已经定义了一个类

class Referral(View):
    ...

或者您导入了另一个班级Referral。如果您进行*导入,可能不会发生这种情况。

from mymodule import *

一个有用的调试工具是向您添加print(Referral)视图。然后,您将看到Referral类是否是您期望的类。