如何解决我应该如何改进我的样式python 类,Django 模型?
我的主模型类如下所示:
class Article(models.Model):
title = models.CharField(max_length=120)
content = models.TextField()
authors = models.TextField(max_length=200)
year = models.IntegerField()
form = models.TextField(choices=FORMS)
language = models.TextField(choices=LANGUAGES)
region = models.TextField(choices=REGIONS)
tags = models.TextField()
def __str__(self):
return self.title
而且,为了让我的 api 将后端数据发送到前端,我有一个 serializers
类,如下所示:
class ArticleSerializers(serializers.ModelSerializer):
class Meta:
model = Article
fields = ('id','title','content','authors','year'...)
显然,当前将 fields
写成一堆硬编码字符串的方式非常笨拙且容易出错(因为我可能会更改 Article
类中的字段但忘记更新 { {1}} 在序列化程序中)。
所以我的问题是,如何改进 fields
的样式?
另外,还有一个问题,这种编码规则/原则叫什么,当你试图让代码的一部分依赖于另一部分时,所以你需要改变一部分,而不是总是不得不改变记得改变两个部分吗?
谢谢!
解决方法
documentation on specifying which fields to include [drf-doc] 说:
您还可以将 fields 属性设置为特殊值 '__all__'
以指示应使用模型中的所有字段。
因此我们可以包含所有字段:
class ArticleSerializers(serializers.ModelSerializer):
class Meta:
model = Article
fields = '__all__'
如果您想排除某些字段,可以使用 exclude
选项:
您可以将 exclude
属性设置为要从序列化程序中排除的字段列表。
例如,如果您想排除 tags
,您可以使用:
class ArticleSerializers(serializers.ModelSerializer):
class Meta:
model = Article
exclude = ['tags']
显然,目前将字段写成一堆硬编码字符串的方式非常笨拙且容易出错
通常,如果元类逻辑在构造类时找不到该字段,则它会引发异常,因此当您启动应用程序时。因此,这意味着拼写错误不会导致任何问题。唯一可能出错的是指定给定模型存在的另一个字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。