Django:在自定义管理器中获取通过注释添加的字段的verbose_name和help_text

时间:2018-11-25 15:02:47

标签: django django-annotate django-custom-manager

我不确定我是否真的以正确的方式进行操作,但是我想做的就是能够为通过注释添加到模型中的字段提供详细的名称和帮助文本。在将它们传递到网页时,我会同时使用这两个字段,并使用verbose_name作为表标题,并使用help_text作为工具提示(基本上是一个调用,它返回包含该字段名称,类型,详细名称和帮助文本)。我通过调用Student._meta.get_field(field).verbose_name或help_text获得这些值。 现在,我使用的模型基本上是这样的:

class Student(models.Model): # new
    first_name = models.CharField(verbose_name='first name', max_length=30, help_text='The first name of the student')
    last_name = models.CharField(verbose_name = 'last name', max_length=30, help_text='The last name of the student')
    date_of_birth=models.DateField(verbose_name='Date of Birth 'help_text = "student's date of birth")
    sex = models.CharField(
    max_length=1,
    choices=(('M','Male'),
             ('F','Female')),
    help_text=_('Sex of the student: (M)ale or (F)emale'),
    verbose_name='Sex'))
然后,我有了另一个模型,该模型基本上将学生的年龄映射到其“类别”(Freshman-Sophomore-Junior-Senior)。 然后,我的自定义管理器向QuerySet添加一个新字段,该字段根据出生日期确定类别,并在其末尾添加性别 (例如Senior-F之类的东西)。 有什么办法可以在这些新字段上调用_meta.get_field(filename).verbose_name吗? 如果不是,那么更实用的方法是什么? 我曾考虑过在模型中添加包含所有字段的字典字典并使用它,但是考虑到Django中的字段已经提供了此功能,这似乎浪费了很多精力

0 个答案:

没有答案