当前位置: 首页 > 面试题库 >

如何使用ajax在Django-admin表格内联中读取/写入输入字段?

夹谷阳夏
2023-03-14
问题内容

我正在寻找使用ajax动态更新内联条目的方法。即,当用户从下拉框中选择一个项目时,可以用数据填充相关的输入字段。

Ajax的views.py部分应该很简单。但是对我来说,一个问题是如何在js中获取下拉框的名称,该名称可以随时添加

以下是models.py和admin.py:

models.py

    class Tshirt:
        designer = CharField()
        default_wording = CharField()

    class Order:
        date = DateField()

    class Order_item:
        order = ForeignKey(Order, related_name='order')
        tshirt = ForeignKey(Tshirt)
        wording = CharField()

管理员

    class Order_Inline(TabularInline):
        model = Order_item
        fk_name = 'order'

    class Order_Admin(ModelAdmin):
        inlines = [Order_Inline,]

问题答案:
  1. urls.py

``
from django.conf import settings

urlpatterns = patterns('',
    (r'^json/tshirt/$', json_order),
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
    ...
)

  2. views.py

    from django.core import serializers


def json_order(request):
    search = request.GET.get('tshirt_id')
    if search:
        result = Tshirt.objects.filter(id=search)
        return HttpResponse(serializers.serialize('json', result, fields=('default_wording')), mimetype='application/json')
    return HttpResponse()

  3. 管理员

    class Order_Inline(TabularInline):
    model = Order_item
    fk_name = 'order'


class Order_Admin(ModelAdmin):
    inlines = [Order_Inline,]
    class Media:
        js = ('/media/js/jquery.js', '/site_media/js/tshirt.js',)

  4. _settings.MEDIA_ROOT_ / js / tshirt.js

    $(document).ready(function() {
    $(".module").delegate("[id$=-tshirt]", "change", function() {
        var row = $(this).attr("id").split('id_order_item-')[1].split("-tshirt")[0];
        var tshirt_id = $(this).val();
        var data = {"tshirt_id":tshirt_id};
        $.getJSON("/json/tshirt", data, function(data) {
            var dw = data[0]["fields"]["default_wording"];
            $("input[id='id_item-"+row+"-wording']").val(dw);
        });
    });
});

```



 类似资料:
  • 我有一个Django模型表单,包含3个字段:name、lastname、email。我想要的是调整crispy表单,使每个字段及其标签在一行中,因此表单将如下所示: 我尝试使用FormHelper和Layout以及bootstrap内联属性,但我所获得的只是将表单中的所有元素都放在一行中。 我在前端非常糟糕,我被卡住了。

  • 问题内容: 我正在编写一个连接到servlet的程序,这要感谢a,但是我在检查url时卡住了 我得到了错误: java.net.ProtocolException:读取输入后无法写入输出。 如果我用注释中的代码检查网址,但不幸的是它可以正常工作,我需要检查网址,所以我认为问题出在方法上,但我不知道如何解决 非常感谢你 问题答案: HTTP协议基于请求-响应模式:首先发送请求,然后服务器响应。服务器

  • 问题内容: 我有一个具有以下字段和关联的商家实体:- 标签和类别也具有ManyToMany映射。因此,我们有Tag_Category,Merchant_Tag,Merchant_Category映射表。 现在,我想在这些字段上执行一些ajax。 我想允许用户首先选择主要标签。在主要标签的基础上,ajax将类别刷新为仅属于该标签的类别,并进行其他一些操作。 我该如何实现? 谢谢! 问题答案: 几个月

  • 问题内容: 我们的教授让我们用Java进行一些基本的编程,他提供了一个网站以及所有可以注册和提交问题的内容,因为今天我需要做一个例子,我觉得自己处在正确的轨道上,但是我无法找出其余的。这是实际的问题: 这是到目前为止我得到的: 现在,我总是会得到答案,因为我正在阅读单行,如何考虑所有行?谢谢 由于某些奇怪的原因,每次我要执行时都会出现此错误: 无论我使用什么版本的答案,都会出现此错误,该怎么办?

  • 我有一个有角度的表格,其中行选择: (请参阅我有值的输入字段) 当我双击Nan值时,我得到: 全码:https://pastebin.com/hnvj56pz 我使用这段代码双击表行并将一个值插入输入字段: 当我用Selenium双击时,表格行变成输入字段。但当我尝试输入某个值时,由于id是动态生成的,因此找不到id。 如何获取输入文件的父级和插入值? 你知道如何解决这个问题吗?

  • 问题内容: 我需要一个嵌套的django admin内联,可以将date字段内联包含在另一个内联中,如下所示。 我有以下模型: 和下面的管理员: 但是我需要将Training_Date模型作为内联包含在内,这是证书管理内联的一部分。 任何想法 ? 问题答案: AFAIK,默认Django管理员中不能包含第二级内联。 Django admin只是一个普通的Django应用程序,因此没有什么可以阻止您