【发布时间】:2020-06-01 14:29:04
【问题描述】:
我使用 Django 和 VueJs 从事一个项目。我有一个字段不能为空的问题,但我不明白为什么。
models.py
from django.db import models
from django.conf import settings
class Tache(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
echeance = models.DateTimeField(null=True, blank=True)
titre = models.CharField(max_length=240)
sous_titre = models.CharField(max_length=240, null=True, blank=True)
content = models.CharField(max_length=240)
fait = models.BooleanField(default=False)
slug = models.SlugField(max_length=255, unique=True)
author = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name="taches")
def __str__(self):
return self.content
序列化器.py
from rest_framework import serializers
from taches.models import Tache
class TacheSerializer(serializers.ModelSerializer):
author = serializers.StringRelatedField(read_only=True)
created_at = serializers.SerializerMethodField(read_only=True)
# echeance = serializers.SerializerMethodField()
echeance = serializers.DateTimeField(format = "%Y-%m-%dT%H:%M:%S")
slug = serializers.SlugField(read_only=True)
class Meta:
model = Tache
exclude = ["updated_at"]
def get_created_at(self, instance):
return instance.created_at.strftime("%d" + "/" + "%m" + "/" + "%Y")
# def get_echeance(self, instance):
# if instance.echeance != None:
# return instance.echeance.strftime("%Y-%m-%dT%H:%M:%S")
我的问题“字段不能为空”在“echeance”字段上。 您可以看到我在 cmets 中有 4 行,因为 => 不起作用所以我这样做: echeance = serializers.DateTimeField(format = "%Y-%m-%dT%H:%M:%S") 我想我的问题来了...
你知道为什么“echeance”不能为空吗...?
谢谢
编辑:当我尝试通过用户界面和 api django rest 框架字创建新的“tache”时出现此错误。但是我可以由 django 管理员创建一个新的“tache”......当我在 api 中看到“tache”时,“echeance”= null。 我迷路了……
解决方案:我已将“echeance”的模型字段更改为 DateField。在我更改序列化程序后:echeance = models.DateField(format = "%d/%m/%Y", allow_null=True, required=False)。我只有日期而不是时间,但它可以工作。
【问题讨论】:
-
你得到了什么实际的回溯/异常?
-
这是控制台错误:VM31718:1 PATCH 127.0.0.1:8000/api/taches/dsfsdfqsdfsf-8r4teg 400(错误请求)
-
法语网络错误:{"echeance":["Ce champ ne peut être nul."]} 繁体:此字段不能为空
标签: python django vue.js null field