从未调用过DJANGO序列化程序验证

时间:2019-02-05 15:57:37

标签: django python-3.x django-rest-framework

我正在尝试在Django中的序列化器上运行自定义验证。序列化器很简单:

class PostsSerializer(serializers.ModelSerializer):

    user = UserSerializer(many=False, required=False, allow_null=True)

    def validate(self, data):

        print('Validating')
        print(data)
        return data

    class Meta:
        model = Post
        fields = ["id", "user", "type", "title", "content", "created_ts"]
        read_only_fields = ["id", "user", "created_ts"]

序列化器的名称如下:

def create_post(self, request):
      serializer = PostsSerializer(data=request.data)

      if serializer.is_valid(raise_exception=True):
         #echo something
      else:
           fail

模型是这样的:

from django.apps import apps
from django.db import models
from ..enums import PostTypes


class Post(models.Model):


    user = models.ForeignKey("auth.User", on_delete=models.DO_NOTHING)
    type = models.IntegerField(choices=[(tag.name, tag.value) for tag in PostTypes])
    title = models.TextField()
    content = models.TextField()

    class Meta:
        db_table = "post"
        ordering = ["-created_ts"]
        verbose_name = "Post"
        verbose_name_plural = "posts"

有什么想法会导致验证函数无法执行?

0 个答案:

没有答案