我是django的新手!
我想在我的网站中创建一个chatterbot chatbot,为此我需要在视图中发出POST请求。我创建了一个模型。我为此使用mysql数据库。
我已经访问了github和其他网站,最后得到了一个代码,但是没有POST请求
这是我的模型。py:
class Response(models.Model):
statement = models.ForeignKey(
'Statement',
related_name='in_response_to',
on_delete=False
)
response = models.ForeignKey(
'Statement',
related_name='+',
on_delete=False
)
unique_together = (('statement', 'response'),)
occurrence = models.PositiveIntegerField(default=0)
def __str__(self):
s = self.statement.text if len(self.statement.text) <= 20 else self.statement.text[:17] + '...'
s += ' => '
s += self.response.text if len(self.response.text) <= 40 else self.response.text[:37] + '...'
return s
这是我需要在views.py中发出POST请求的地方
def post(self, request, *args, **kwargs):
response = Response.objects.all()
if request.is_ajax():
input_data = json.loads(request.read().decode('utf-8'))
else:
input_data = json.loads(request.body.decode('utf-8'))
self.validate(input_data)
response_data = self.chatterbot.get_response(input_data)
return JsonResponse(response, response_data, status=200)
def get(self, request, *args, **kwargs):
data = {
'detail': 'You should make a POST request to this endpoint.',
'name': self.chatterbot.name,
'recent_statements': self._serialize_recent_statements()
}
# Return a method not allowed response
return JsonResponse(data, status=405)
答案 0 :(得分:0)
如果您使用的是django rest框架(DRF),建议您先执行QuickStart,然后再执行Serialization步骤。 DRF有一个非常好的文档,在序列化中,您可以通过定义以下内容找到如何发出POST请求: