如何在Django模型中将空值设置为DateField?

2024-04-20 00:43:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我做错什么了?我需要将空值设置为“做”字段。在

def delete_todo_today(request):
    if request.is_ajax() and request.POST and request.user.is_authenticated:
        thingtodo = ThingToDo.objects.filter(author = request.user, thing = request.POST.get('item'))
        thingtodo.doing_date = None
        thingtodo.save()
        data = {'message': "%s 's doing_date deleted" % request.POST.get('item')}
        return HttpResponse(json.dumps(data), content_type='application/json')
    else:
        raise Http404

Tags: andjsondatagetdateisrequestdef
2条回答

您正在使用.filter()来获取thingtodo的对象。这将返回一个QuerySet或简单地说是一个对象列表。不能直接在多个对象上设置属性。在

如果您只想检索一个对象,请使用get()而不是.filter()。当一个匹配的对象多于一个时,它将引发一个匹配的异常。在

如果要更新多个对象,请使用QuerySet的update()方法:

thingtodo.update(doing_date=None)

还要使用模型allows Null作为属性。在

默认情况下,models.DateField.empty_strings_allowed设置为Falsehttps://docs.djangoproject.com/en/1.10/_modules/django/db/models/fields/#DateField

尝试用options['blank'] = True来定义ThingToDo.doing_date,类似于doing_date = models.DateField(**options)

相关问题 更多 >