2013-06-12 76 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 –

相关问题