2013-06-12 124 views
0

我有兩個模型,Event和Profile。試圖在Django中的兩個模型之間創建連接

class Event(models.Model): 
    def __unicode__(self): 
     return self.title 
    event_id = models.BigIntegerField(blank = 'TRUE', primary_key='TRUE') 
    title = models.CharField(max_length=200, blank = 'TRUE') 

class Profile(models.Model): 
    user = models.OneToOneField(User) 
    name = models.CharField(max_length=50) 
    eventList = models.ManyToManyField(Event) 

    def __unicode__(self): 
     return self.name 

我有一堆事件的頁面,每個旁邊都有一個按鈕。點擊該按鈕後,我希望將事件添加到用戶的「eventList」中。目前的做法是將按鈕分配給「event_id」的值,並將其作爲參數傳遞給dajaxice函數(並非100%確定這是最佳方法)。該dajaxice函數位於一個名爲ajax.py,看起來像這樣:

from search.models import Event 
from profiles.models import Profile 
from dajaxice.decorators import dajaxice_register 

@dajaxice_register 
def addEvent(event): 
    e = Event.objects.get(pk=event) 
    u = user.get_profile.eventList 
    u.add(e) 
    return 

只要看,我可以告訴大家,這是非常錯誤的,而且這個問題是最有可能與我的功能,我的方式m附加到eventList。任何人有任何想法解決這個問題?

+0

這樣看起來錯了嗎?你收到錯誤信息了嗎? –

回答

0

對我來說,它看起來像user.get_profile將失敗,因爲get_profile是一個函數。

您需要調用它。

dajaxice_register 
def addEvent(event): 
    e = Event.objects.get(pk=event) 
    u = user.get_profile().eventList 
    u.add(e) 
    return 

更重要的是,您需要找到調試代碼的方法。這並不總是這麼簡單。

+0

改變它你如何說。我無法檢查它是否有效。當我登錄管理員並嘗試從那裏查看用戶的個人資料時,我收到「(1146,」表'eventsearch.profiles_profile_eventList'不存在「)錯誤。我同步了我的數據庫和所有內容,但似乎無法看到所有內容。 – Xonal

+0

@ user2411268,你需要解決這個問題。事實上你必須添加eventList m2m。刪除表並重新開始,或使用'manage.py sqlall'並確定創建m2m表所需的SQL –

相關問題