2014-08-31 43 views
0

我正在构建一个列出扑克锦标赛的网站。我想允许用户将一些锦标赛标记为他的最爱,并避免使用GET参数的表单或额外页面 - 我想在不刷新网站的情况下更新它。根据我的理解,它由ajax和jquery完成。但有许多ajax库,我希望你告诉我,我应该使用哪一个,以及如何最好地完成这个简单的功能。
这是我的比赛表: tournament table
我想在事件发生之前有另一列,那将包含心脏图像。它会是黑色的(不是最喜欢的),如果用户点击它,它会变成红色(最喜欢的)。 我认为应该在这里使用m2m关系。这是我的锦标赛模式。更新模型属性,无需刷新数据库

class Tournament(models.Model): 
    favourite = models.ManyToManyField(User) 
    date = models.DateTimeField('Event time') 
    currency = models.CharField(max_length=5, choices=CURRENCIES, default='USD') 
    name = models.CharField("Tournament name", max_length=200) 
    prize = models.DecimalField(max_digits=20, decimal_places=2) 
    entry = models.DecimalField(max_digits=20, decimal_places=2) 
    fee = models.DecimalField(max_digits=20, decimal_places=2) 
    password = models.CharField("password", max_length=200) 
    type = models.ForeignKey('room.Type') 
    room = models.ForeignKey('room.Room') 
    requirements_difficulty = models.IntegerField('Tournament Difficulty', 
                validators=[MinValueValidator(1), MaxValueValidator(30)]) 
    requirements_text = models.CharField("Requirements Description", max_length=1000) 

    recurrence = models.CharField(max_length=5, 
             choices=RECURRENCE_CHOICES, 
             default='NONE') 

那么如何在用户和锦标赛之间添加m2m关系呢?我使用ajax代码还是使用dajax?如何在不刷新页面的情况下创建此m2m?

+3

我想,你应该分裂您的问题成碎片并单独询问。像1)ajax如何工作? 2)django中的m2m关系如何工作?否则,回答太宽泛,需要很多时间来回答。 – doniyor 2014-08-31 18:55:55

回答

0

那么如何在用户和锦标赛之间添加m2m关系呢?

假设你使用默认的Django用户模型:

Class Tournament(models.Model): 
    user = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='user_tournament') 
... 

难道我使用AJAX代码或dajax?

由于@ doniyor说,你应该定义你真正的问题,并拆分你的问题。 SO不是“为我做的”,反正,我能为你做的,是给你一些很好的联系;)

W3学校定义为Ajax: http://www.w3schools.com/ajax/ajax_intro.asp

好的Ajax插件djando似乎你已经知道: http://www.dajaxproject.com/

顺便说一下,你应该使用dajax,更容易和更快创建与Django集成的Ajax页面(你只需要按照教程,非常简单)。

如何在不刷新页面的情况下创建此m2m?

使用dajax

+0

谢谢,基本上我想知道如果dajax是一个不错的选择。我不确定django rest框架是不是做同样的事情,我想我会在这里得到答案(应该直接提出,没有我的要求,例如实际)。我也认为简单的Ajax请求很容易实现,这样我的问题就不需要广泛的回答。谢谢你的回答,我会尽量用dajax来做。 – Lucas03 2014-09-01 09:53:25

+0

不客气,是的,绝对是dajax是一个不错的选择! – Lara 2014-09-01 09:54:41

+0

https://github.com/jorgebastida/django-dajax“我应该使用django-dajax还是django-dajaxice?”,作者说不。 PS我努力让Dajax工作,尽管dajaxice工作正常。 – Lucas03 2014-09-01 12:41:40