Django:管理员中的 AJAX/jQuery

Posted

技术标签:

【中文标题】Django:管理员中的 AJAX/jQuery【英文标题】:Django: AJAX/jQuery in Admin 【发布时间】:2015-04-05 01:45:52 【问题描述】:

我有一个 Contract 类,其中 contract_mod 允许从以前的合同扩展合同。 contract_mod 应该只显示与我们之前选择的人相关的合同。因为我从来没有使用过 AJAX/jQuery,所以我不知道从哪里开始。

class Contract(models.Model):
    person        = models.ForeignKey(Person) #person hired
    project       = models.ForeignKey(Project, blank = True, null = True) #related project
    contract_mod  = models.OneToOneField('self', blank = True, null = True) #allows to extend a contract
    type_contract = models.CharField(max_length = 9, blank = True, verbose_name = _(u"Type of contract(Full time/grant/Partial time...)"))
    starting_date = models.DateField(blank = True, null = True)
    ending_date   = models.DateField(blank = True, null = True)

【问题讨论】:

【参考方案1】:

1 - 我不认为 contract_mod 会像这样工作;我猜你想要一个人的合同清单?为此,您不需要 onetoone 字段。更不用说'self'了。

相反,您可以简单地使用query 来检索逻辑部分中此人的所有联系人,大致如下:Contract.object.filter(person=person)(我不能非常具体,因为您提供的关于您的班级的信息很少逻辑以及你想如何做事。)

2 - 这都是后端的东西。即使你想用它做一个视图,这仍然会被认为是后端的东西。如果您想通过 ajax 调用使用 jquery 检索这些东西,因为它似乎来自您的问题,请在另一个问题中询问如何执行此操作,因为它是前端的东西,与 django 无关。

但简而言之,您可以使用查询结果创建一个视图,并将其传递到 json 或 xml 到前端,而不是例如模板。

【讨论】:

该类与“自我”link 正常工作,只是我需要添加 jQuery 功能,我需要在管理员中使用它。我看到有一些提供此功能的第三方扩展,但我更喜欢保持代码 clean

以上是关于Django:管理员中的 AJAX/jQuery的主要内容,如果未能解决你的问题,请参考以下文章

Django 管理员添加表单 ajax 调用

Ajax jQuery serialize() & serializeArray() textarea 未以 Django 形式提交

使用 Ajax、jQuery 将数据发布到 Django

从 Django 中的 JsonResponse 中提取字段值并将其传递给 Ajax Jquery

如何使用Django模板在javascript中访问ajax jquery中的模板变量

如何通过 Ajax jQuery 将简单数据发送到 Django 中的views.py?