Django-VueJS-不能为空

问题描述 投票:0回答:1

我正在使用Django和VueJs进行项目。我有一个字段不能为null的问题,但我不明白为什么。

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

serializers.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")

我的问题“字段不能为空”在“回显”字段上。您可以看到我在注释中有4行,因为=>不起作用,所以我这样做了:echeance = serializers.DateTimeField(格式=“%Y-%m-%dT%H:%M:%S”)我认为我的问题来了...

您是否知道为什么“ echeance”不能为空...?

谢谢

编辑:当我尝试通过用户界面和api django rest框架字创建新的“ tache”时,出现此错误。但是我可以由django管理员创建一个新的“ tache”。当我在api中看到“ tache”时,“ echeance” = null。我迷路了...

python django vue.js null field
1个回答
1
投票

您必须提及allow_blank和allow_true

尝试一下

echeance = serializers.DateTimeField(format="%Y-%m-%dT%H:%M:%S", required=False, read_only=True)
© www.soinside.com 2019 - 2024. All rights reserved.