当我使用DRF的可浏览API时,我可以发布和删除。试图通过我的tradingbook.html(w/DataTables)复制此消息(新建/编辑/删除):错误请求: /api/trading/带"POST /api/trading/?格式=数据
我在这件事上花了太多时间,我永远都不会承认。
class TradingBook(models.Model):
trader = models.TextField(max_length=10)
status = models.TextField(max_length=10)
price = models.TextField(max_length=10)
volume = models.TextField(max_length=10)
index = models.TextField(max_length=10)
cpty = models.TextField(max_length=10)
class Meta:
ordering = ['trader']
def __str__(self):
return self.trader
连载器。派克
class TradingBookSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(read_only=True)
class Meta:
model = TradingBook
fields = "__all__"
DT_RowId = serializers.SerializerMethodField()
def get_DT_RowId(self, TradingBook):
return 'row_%d' % TradingBook.pk
意见。派克
@csrf_exempt#@csrf_protect#@ensure_csrf_cookie
def tradingsomething(request):
return render(request, 'trading/tradingbook.html')
@method_decorator(login_required, name="dispatch")
class TradingBookViewSet(viewsets.ModelViewSet):
queryset = TradingBook.objects.all()#.order_by('trader')
permission_classes = [permissions.AllowAny]
serializer_class = TradingBookSerializer
urls.py
path('trading', trading_views.tradingsomething),
path('trading/<int:pk>/', trading_views.TradingBookViewSet, name='TradingBook'),
path('api/', include(router.urls)),
urlpatterns += router.urls
还有我的传统书籍。html
<script>
$(document).ready(function() {
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
var csrftoken = jQuery("[name=csrfmiddlewaretoken]").val(); // <--important
editor = new $.fn.dataTable.Editor( {
ajax:"/api/trading/?format=datatables&keep=id",
table: "#TradingBook",
fields: [
{ label: "trader:",
name: "trader"
},
{ label: "status:",
name: "status"
},
{ label: "price:",
name: "price"
},
{ label: "volume:",
name: "volume",
},
{ label: "index:",
name: "index",
},
{ label: "cpty:",
name: "cpty",
},
]
} );
$('#TradingBook').on( 'click', 'tbody td:not(:first-child)', function (e) {
editor.inline( this );
} );
var table = $('#TradingBook').DataTable({
ajax:"/api/trading/?format=datatables&keep=id",
dom: 'Bfrtip',
headers: {'X-CSRFToken': '{{ csrftoken }}'},
processing: true,
serverSide: true,
select: true,
type: "POST",
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
columns: [
{"data": "trader"},
{"data": "status"},
{"data": "price"},
{"data": "volume"},
{"data": "index"},
{"data": "cpty"},
],
select: true,
buttons: [
{extend: "create", editor: editor},
{extend: "edit", editor: editor},
{extend: "remove", editor: editor}
],
});
table.buttons().container()
.appendTo($('.col-md-6:eq(0)', table.table().container()));
});
</script>
{% block content %}
{% csrf_token %}
<div class="container" style="font-size: .9em;">
<div class="row">
<div class="col-sm-12">
<table id="TradingBook" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th data-data="trader">trader</th>
<th data-data="status">status:</th>
<th data-data="price">price:</th>
<th data-data="volume">volume:</th>
<th data-data="index">index</th>
<th data-data="cpty">Cprty:</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
{% endblock %}
我的网络检查员
这就是我尝试从中编辑时发生的情况http://127.0.0.1:8000/trading终端返回错误请求:/api/trading/[15/May/2020 14:06:06]“POST/api/trading/?format=datatables
这是我第一次敢于提出问题,并希望在描述上更透彻。我担心这对给出答案的人来说可能微不足道,但我非常感谢你抽出时间。
我也遇到了同样的问题,对我来说,问题是数据表声明中的一个字段名称与我的模型不匹配。只是一个愚蠢的错误。
Delete现在通过DataTables JS插入工作
remove: {
type: 'DELETE',
headers: { "X-CSRFTOKEN": csrftoken },
url: "/api/trading/_id_/",
contentType: 'application/json',
data: function ( d ) {
return JSON.stringify( d );
},
},
我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代
问题内容: 这工作正常: 这将返回400 Bad Request(只是使用.ajax来支持错误处理的上述jQuery的重新格式)。 问题答案: 我认为您只需要再添加2个选项(和):
我试图使用Gmail API将用户设置应用到Gmail帐户,但它不断返回错误400错误请求。 我可以看到错误代码在Gmail API控制台,它来自我的服务号,所以代码不可能是如此错误,但它让我发疯,只是不能找出什么是错误的。 如果有人能给我指出正确的方向,我会非常感激。
我试图使超文本传输协议后请求获得api令牌。如果成功,它应该返回访问令牌、令牌类型(承载)和expires_in的字符串值。 我的代码是一个通用的,我希望看到它能工作。但是由于某些原因,它抛出了一个例外400“远程服务器返回了一个错误。错误请求”。我一直在尽一切努力修复这个问题,但结果没有改变。 当我调试代码并在输出窗口中看到结果时,数据流有一个异常,说“这个流不支持查找操作” 我怀疑这是由于po
默认情况下,当凭据错误时,DRF-JWT返回400状态的响应。为什么会这样?当用户没有提供正确的登录信息时,浏览器控制台中会写入错误的请求日志。因此,我在前端处理错误,但仍然没有控制台错误消息。那么,我如何才能超越JWT,不筹集400美元,而是返回成功,正确的方法是什么?
问题内容: 我有这个应用程序,它可以在本地运行,并且在部署时可以使用.mdf SQL Express数据库文件(通常用于测试目的)。但是,当我将其更改为可与我们的SQL Server 2008一起使用时,该应用程序可以运行,但该服务无法运行。 例如,如果在页面后面的代码中,我有一个按钮可以向表中添加数据,例如: 我的web.config设置为在该服务器上使用模拟,并且一切运行良好。但是,对于我的服