在Django中,allow_blank and style={'base_template':'文本区域.html'}作为CharField属性?

2024-05-16 22:26:30 发布

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

在本教程中,我刚刚开始逐步学习Django REST框架。在

在本教程中,我声明了与Django的表单非常相似的序列化器,以便提供一种将片段实例序列化和反序列化为表示的方法,例如json。在

这里是片段/模型.py. 在

from django.db import models
from pygments.lexers import get_all_lexers
from pygments.styles import get_all_styles

LEXERS = [item for item in get_all_lexers() if item[1]]
LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in LEXERS])
STYLE_CHOICES = sorted((item, item) for item in get_all_styles())


class Snippet(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    title = models.CharField(max_length=100, blank=True, default='')
    code = models.TextField()
    linenos = models.BooleanField(default=False)
    language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100)
    style = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100)

    class Meta:
        ordering = ('created',)

以下是片段/序列化程序.py. 在

^{pr2}$

在Django文档中,我找不到allow_blank,style={'base_template':'文本区域.html'}作为CharField属性,所以我不知道它们是什么意思。在

我想知道标题=模型.CharField(最大长度=100,空白=True,默认值='')in模型.py标题=序列化程序.CharField(必需=假,允许空白=真,最大长度=100)in序列化程序.py。在

请告诉我。谢谢你的时间。在


Tags: djangoinfrompy模型importdefaultget
1条回答
网友
1楼 · 发布于 2024-05-16 22:26:30

首先,对于CharFields,不要将blank和default都设置为True和空字符串。空白就够了。空白表示该字段不是必需的,可以为空。其次,在序列化程序中定义的字段与模型中的字段完全相同。你可以把这些都去掉。DRF是为你做的,这才是重点。它只是模仿模型中描述的字段的属性。在

你也可以删除create和update方法,它们是自动发生的。在

这才是你真正需要的。在

from rest_framework import serializers
from snippets.models import Snippet

class SnippetSerializer(serializers.ModelSerializer):
    class Meta:
        model = Snippet
        fields = '__all__'

相关问题 更多 >