【发布时间】:2020-02-16 22:15:09
【问题描述】:
我的网络应用有一些问题。我需要在我的 Ajax 请求中指定用户。当我尝试添加新项目时出现错误:
TypeError: Field 'id' expected a number but got. 有什么解决方案吗?
这是我的代码:
views.py
if request.method == 'POST':
if request.is_ajax():
form = AddTask(request.POST)
if form.is_valid():
form.cleaned_data
form.save()
user_membership = User.objects.get(id=request.user.id)
expence_object = model_to_dict(Task.objects.get(pk=user_membership))
return JsonResponse({'error': False, 'data': expence_object})
models.py
class Task(models.Model):
title=models.CharField(max_length=200)
date = models.DateTimeField(default=datetime.now,blank=True)
is_published=models.BooleanField(default=True)
usertask=models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, null=True, blank=True)
Ajax 表单
$('#taskpost').submit(function (e) {
// console.log("Creating the book");
e.preventDefault();
// get the form data
var formData = {
'title': $('#id_title').val(),
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
contentType: 'application/x-www-form-urlencoded',
encode: true,
};
$.ajax({
type: 'POST',
url: 'create/',
data: formData,
dataType: 'json',
}).done(function (data) {
【问题讨论】:
-
不确定这是否能解决所有问题,但这一行:
expence_object = model_to_dict(Task.objects.get(pk=user_membership))引发异常,因为它需要一个整数并且您正在传递一个模型实例。应该是:expence_object = model_to_dict(Task.objects.get(pk=user_membership.pk)) -
@revliscano 我更改了它,但出现错误:* raise self.model.DoesNotExist(main.models.Task.DoesNotExist: 任务匹配查询不存在。* 但是 对象已创建(没有外键)。
-
哦,当然。我知道错误是什么。让我详细说明我的答案
标签: python django ajax django-views