【问题标题】:Update model attribute without refreshing database更新模型属性而不刷新数据库
【发布时间】:2014-08-31 18:49:06
【问题描述】:

我正在建立一个列出扑克锦标赛的网站。我想允许用户将一些锦标赛标记为他的最爱,并避免使用 GET 参数的表单或额外页面 - 我想在不刷新网站的情况下更新它。据我了解,它是由 ajax 和 jquery 完成的。但是有很多 ajax 库,我希望您告诉我,我应该使用哪个以及如何最好地完成这个简单的功能。
这是我的锦标赛表:
我想在活动时间之前有另一列,其中包含心脏图像。它会是黑色的(不是最喜欢的),如果用户点击它,它会变成红色(最喜欢的)。 我认为这里应该使用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) ajax 是如何工作的? 2) django 中的 m2m 关系如何工作?否则,回答的范围太广,需要很长时间才能回答。

标签: ajax django


【解决方案1】:

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

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

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

我使用 ajax 代码还是 dajax?

正如@doniyor 所说,您应该定义您的真正问题并拆分您的问题。 SO不是“为我做”,反正我能为你做的,就是给你一些好的链接;)

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

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

顺便说一句,你应该使用 dajax,创建与 django 集成的 ajax 页面既简单又快捷(你只需按照教程进行操作,非常简单)。

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

使用 dajax

【讨论】:

  • 谢谢,基本上我想知道 dajax 是否是一个不错的选择。我不确定 django rest 框架是否不做同样的事情,我想我会在这里得到答案(应该直接问这个问题而无需我请求实际示例)。我还认为简单的 ajax 请求很容易实现,这样我的问题就不需要广泛的答案。感谢您的回答,我会尝试用 dajax 来做。
  • github.com/jorgebastida/django-dajax “我应该使用 django-dajax 还是 django-dajaxice?”,作者说不。 PS 我正在努力让 Dajax 工作,虽然 dajaxice 工作正常。
  • 我在我的项目中使用 dajaxice。
  • 你能看看我的SO问题吗?我无法自己运行示例。 stackoverflow.com/questions/25608071/…
猜你喜欢
  • 2018-02-22
  • 1970-01-01
  • 2016-08-23
  • 2016-02-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多