2014-08-31 74 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