从pinax转介包创建转介时遇到问题。当我试图在视图内创建引用时,引用类具有类函数create(…):

from pinax.referrals.models import Referral

def createReferral(user):

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

它引发我以下错误:
类型对象“reference”没有属性“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软件包本身无关,看起来非常奇怪。有人有什么想法吗?

最佳答案

听起来好像您在同一个模块中定义了另一个类Referral,它取代了Pinax的Referral模型。
这可能是因为你定义了一个类,

class Referral(View):
    ...

或者您导入了另一个类Referral。如果您执行*导入,可能不会明显发生这种情况。
from mymodule import *

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

关于python - 找不到类函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34397395/

10-10 13:46