更新模型属性而不刷新数据库

时间:2014-08-31 18:49:06

标签: ajax django

我正在建立一个列出扑克锦标赛的网站。我想允许用户将一些锦标赛标记为他的最爱,并避免使用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?

1 个答案:

答案 0 :(得分:0)

  

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

假设您使用默认的django用户模型:

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

我是否使用ajax代码或dajax?

正如@doniyor所说,你应该定义你的真正问题并分开你的问题。所以,不是“为我做”,无论如何,我能为你做的,是给你一些很好的联系;)

W3学校对ajax的定义: http://www.w3schools.com/ajax/ajax_intro.asp

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

顺便说一句,你应该使用dajax,创建与django集成的jax页面很简单快捷(你只需要按照教程,非常简单)。

  

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

使用dajax