2015-12-21 71 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班是否是你期望的班。