【发布时间】:2025-12-27 08:45:06
【问题描述】:
我的主要模型类如下所示:
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 类中的字段但忘记更新fields 中的序列化程序)。
所以我的问题是,如何改善fields 的风格?
另外,另一个问题,当你试图使代码的一部分依赖于另一部分时,这种类型的编码规则/原则称为什么,所以你需要改变一部分,而不是总是不得不记得改变这两个部分吗?
谢谢!
【问题讨论】:
-
fields = '__all__'? -
是的,@WillemVanOnsem -
fields = '__all__'是最好的解决方案。如果您不想要某些字段,也可以显式排除字段。查看文档:docs.djangoproject.com/en/3.1/topics/forms/modelforms/…
标签: python django django-models coding-style python-class