【发布时间】:2017-06-18 10:40:10
【问题描述】:
我已经为此苦苦挣扎了几天。 我想使用 django-datatable-view 的 xeditable 列集成。我的代码正确加载了数据表 (see here),但是每当我指定 make_xeditable 的列时,我都会收到 500 Internal Server 错误。我查看了讨论 django-datatable-view 的几页(由于没有足够的代表而无法发布链接...),但没有一个讨论 x-editable 选项。
使用在线现场演示 (here)(0.7 版)中的 sn-ps 无济于事。表格已加载,但列不可编辑。
class PriceListDataTableView(XEditableDatatableView):
model = PriceList
datatable_options = {
'columns': [
'id',
'date',
'product',
'unit',
("Price", 'price', helpers.make_xeditable),
]
}
我在本地主机上运行了最新版本 (0.9),他们的示例有效!但我无法让它在我自己的应用程序中工作。两种设置都运行 django 1.8
这是我的模型:
class PriceList(models.Model):
# Fields
date = models.DateField(verbose_name="Price list date")
product = models.CharField(verbose_name="Product name", max_length=100)
unit = models.CharField(verbose_name="Unit", max_length=6)
price = models.DecimalField(verbose_name="Price", decimal_places=2,
max_digits=10)
这是我的模板:
{% extends "agrichem/base.html" %}
{% block content %}
<script>
$(document).ready(function() {
<!-- Initialization for x-editable tables -->
$.fn.editable.defaults.mode = 'inline';
$(function(){
var xeditable_options = {};
datatableview.initialize($('.datatable'), {
fnRowCallback: datatableview.make_xeditable(xeditable_options),
});
});
});
</script>
{{ datatable }}
{% endblock %}
这是我的看法:
class PriceListDataTableView(XEditableDatatableView):
model = PriceList
class datatable_class(Datatable):
class Meta:
columns = ['id', 'date', 'product', 'unit', 'price']
processors = {
'price': helpers.make_xeditable,
}
如果我删除 processors 块,我的表格会加载,但不可编辑。有了它,我会弹出一个窗口,上面写着:
DataTables 警告:表 id=DataTables_Table_0 - Ajax 错误。有关此错误的更多信息,请参阅 datatables.net/tn/7
只要服务器没有返回 2xx 代码,就会发送此弹出错误,因此它基本上是由于以下原因而发生的:
在控制台中我收到 500 内部服务器错误(链接计数被破坏):
jquery.min.js:4 GET ht__tp://127.0.0.1:8000/pricelist/?draw=1&columns%5B0%5D%5Bdata%5D=0&columns%art=0&length=25&search%5Bvalue%5D=&search% 5Bregex%5D=false&_=1497779941842 500(内部服务器错误)
我现在正在兜圈子,我需要一些帮助。有人搞定了吗?
编辑: 我现在已经将 django-datatable-view 降级到 0.8 版,并使用了下面建议的语法,我也得到了 SAME 500 Internal Server 错误。我怀疑我在某处遗漏了一些必要的设置步骤,但文档并没有说明什么。
【问题讨论】:
标签: django datatables x-editable