我正在尝试设计一些 Django 模型,但官方文档和 Stack Overflow 都没有给出答案。
问题在于学生模型:一个学生有一个英文名字和一个非英文名字(例如中文)。然而,他们通常更喜欢被称为一个或另一个,而且他们的父母称他们为一个或另一个(有时父母有不同的偏好:)
我想将此首选项存储在学生模型中。现在,我正在存储一个文本值,该值指示学生和家长的首选名称:
class Student(models.Model):
ENGLISH_NAME = 'E'
OTHER_NAME = 'O'
PREFERRED_NAME_CHOICES = (
(ENGLISH_NAME, 'English Name'),
(OTHER_NAME, 'Other Name (any language)'),
)
PREFERRED_NAME_FIELDS = {
ENGLISH_NAME: 'first_name_english',
OTHER_NAME: 'first_name_other',
}
first_name_english = models.CharField(max_length=50)
first_name_other = models.CharField(max_length=50)
child_preferred_name = models.CharField(max_length=1, choices=PREFERRED_NAME_CHOICES)
parent_preferred_name = models.CharField(max_length=1, choices=PREFERRED_NAME_CHOICES)
我认为这很丑陋。除了在数据库中存储一些值之外,是否有更好的方法来引用同一模型中的字段?
谢谢 :)