You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
40 lines
1.5 KiB
# -*- coding: utf-8 -*-
|
|
from django.db import models
|
|
from hvad.models import TranslatableModel, TranslatedFields, TranslationManager
|
|
#
|
|
from functions.custom_fields import EnumField
|
|
|
|
|
|
class TranslatorManager(TranslationManager):
|
|
def safe_get(self, **kwargs):
|
|
model = self.model
|
|
try:
|
|
return model.objects.get(**kwargs)
|
|
except:
|
|
return None
|
|
|
|
|
|
class Translator(TranslatableModel):
|
|
"""
|
|
Extra information about translators
|
|
"""
|
|
#set manager of this model
|
|
objects = TranslatorManager()
|
|
|
|
gender = EnumField(values=('male', 'female'))
|
|
|
|
birth = models.DateField(verbose_name='Дата рождения')
|
|
car = models.BooleanField(verbose_name='Личный автомобиль', default=0)
|
|
|
|
translations = TranslatedFields(
|
|
education = models.CharField(verbose_name='Образование', max_length=255),
|
|
specialization = models.CharField(verbose_name='Специализация', max_length=255),
|
|
languages = models.CharField(verbose_name='Языки', max_length=255),
|
|
native_language = models.CharField(verbose_name='Родной язык', max_length=255),
|
|
prices = models.TextField(verbose_name='Тарифы'),
|
|
discounts = models.TextField(verbose_name='Скидки', blank=True),
|
|
#-----meta
|
|
title = models.CharField(max_length=255, blank=True),
|
|
descriptions = models.CharField(max_length=255, blank=True),
|
|
keywords = models.CharField(max_length=255, blank=True),
|
|
) |