Django管理模型

时间:2016-10-12 08:13:29

标签: django forms django-admin

我有这些模特:

$(function () {
    $("#upload").bind("click", function () {
        var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;

        if (regex.test($("#fileUpload").val().toLowerCase())) {
            if (typeof (FileReader) != "undefined") {
                var reader = new FileReader();
                reader.onload = function (e) {
                    //var table = $("<table id='name'/>");
                    var lines = e.target.result.split("\n");
                    //alert(lines);
                    var result = [];


                    var headers = lines[0].split(",");
                    for (var i = 1; i < headers.length; i++) {
                        var header = headers[i];
                        header = header.replace(/(\r\n|\n|\r)/gm, "");
                        headers[i] = header;
                    }



                    for (var i = 1; i < lines.length; i++) {
                        var obj = {};
                        var currentline = lines[i].split(",");
                        //alert(currentline);

                        for (var j = 0; j < headers.length; j++) {
                            obj[headers[j]] = currentline[j];
                            //alert(obj[headers[j]]);
                        }
                        result.push(obj);
                        //alert(JSON.stringify(result));
                    }

                    //alert(result[0].NAME + ' '+ result[0].ADDRESS+" "+result[0].CITY);
                    populateTable(result);
                    document.getElementById("cancel").style.visibility = "visible";
                    document.getElementById("process").style.visibility = "visible";
                    document.getElementById("filterDev").style.visibility = "visible";
                }
                reader.readAsText($("#fileUpload")[0].files[0]);
            }

        }

    });
});

$(function () {
    $("#process").bind("click", function () {

        document.getElementById("File1").style.visibility = "visible";
        document.getElementById("File2").style.visibility = "visible";

    });

});

function populateTable(finalObject) {

    var obj = finalObject;
    var table = $("<table id='my-table' />");
    table[0].border = "1";
    var columns = Object.keys(obj[0]);
    columns.unshift('');
    //alert(columns);
    var columnCount = columns.length;
    var row = $(table[0].insertRow(-1));


    for (var i = 0; i < columnCount; i++) {
        var headerCell = $("<th />");
        headerCell.html([columns[i]]);
        row.append(headerCell);
    }

    $.each(obj, function (i, obj) {

        row = '<tr data-id="' + obj.ID + '"><td><input type="checkbox" value='+obj.ID+'/></td>
        table.append(row);
    });


    var dvTable = $("#dvCSV");
    dvTable.html("");
    dvTable.append(table);

}

在管理员

class Filters(models.Model):

    def __unicode__(self):
        return format('%s' % self.title)

    title = models.CharField(max_length=255,verbose_name='Name filter')


class FilterValue(models.Model):

    value = models.CharField(max_length=255,verbose_name='value filter')
    filter = models.ForeignKey(Filters)


class Casino(models.Model):

    title = models.CharField(max_length=255,verbose_name='Name Casino')
    filters = models.ManyToManyField(Filters)

如何在管理员多选中获取视图:

  • 名称过滤器
  • - 此名称的值过滤器

等等

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的问题,但听起来你想要表格内联。

尝试将以下内容添加到您的管理员

class FilterValueInline(admin.TabularInline):
    model = FilterValue

class AdminCasino(admin.ModelAdmin):
    inlines = [FilterValueInline]