Django: получение verbose_name и help_text для полей, добавленных через аннотацию в пользовательском менеджере

Я не уверен, правильно ли я подхожу к этому, но я хотел бы дать подробное имя и текст справки для полей, которые я добавляю в свою модель с помощью аннотации. Я использую оба этих поля при передаче их на веб-страницу и использую 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'))

Затем у меня есть другая модель, которая в основном отображает возраст ученика в его "категорию" (первокурсник-второкурсник-младший-старший). Затем мой пользовательский менеджер добавляет в QuerySet новое поле, которое определяет категорию на основе даты рождения и добавляет пол в конце (например, Senior-F или что-то в этом роде). Есть ли способ для меня, чтобы иметь возможность вызывать _meta.get_field (имя файла).verbose_name также в этих новых полях? Если нет, то каков более практичный способ сделать это? Я думал о том, чтобы добавить словарь словарей в мою модель со всеми полями и использовать его, но кажется, что это пустая трата усилий, поскольку поля в Django уже предоставляют эту функциональность.

0 ответов

Другие вопросы по тегам