class TestModelFields(Model): big_int = BigIntegerField() yesno = BooleanField() title = CharField(max_length=150) csv_data = CommaSeparatedIntegerField(max_length=255) when = DateField() when_accurate = DateTimeField() amount = DecimalField(max_digits=8, decimal_places=4) email = EmailField() upload = FileField(upload_to='test') path = FilePathField(path=d.APP_DIR, recursive=False, match=".json$") inaccurate = FloatField() img = ImageField(upload_to='test') ip = IPAddressField() better_ip = GenericIPAddressField(protocol='both') yesnomaybe = NullBooleanField(default=None) posint = PositiveIntegerField() small_posint = PositiveSmallIntegerField() slug = SlugField() small_int = SmallIntegerField() content = TextField() when_time = TimeField() web_address = URLField() user = ForeignKey('auth.User') groups = ManyToManyField('auth.Group') one_to_one = OneToOneField('auth.Permission') class Meta: verbose_name = 'test model fields' verbose_name_plural = 'test model fields'
class BaseMapItem(Model, StrMixin): stats = OneToOneField('CelestialStatistics', to_field='celestial_id', db_column='itemID', related_name='map_item', null=True) name = CharField(max_length=100, db_column='itemName', blank=True) map_item_id = IntegerField(primary_key=True, db_column='itemID') group = ForeignKey('ItemGroup', null=True, db_column='groupID', blank=True, related_name='+') base_type = ForeignKey('Item', null=True, db_column='typeID', blank=True, related_name='+') x = FloatField(blank=True) y = FloatField(blank=True) z = FloatField(blank=True) radius = FloatField(blank=True) security = FloatField(blank=True) celestial_index = FloatField(null=True, db_column='celestialIndex', blank=True) orbit_index = FloatField(null=True, db_column='orbitIndex', blank=True) class Meta: db_table = 'mapDenormalize' app_label = 'eve_sde'
class ControllerInfo(CleanSave, TimestampedModel): """A `ControllerInfo` represents metadata about nodes that are Controllers. :ivar node: `Node` this `ControllerInfo` represents metadata for. :ivar version: The last known version of the controller. :ivar interfaces: Interfaces JSON last sent by the controller. :ivar interface_udpate_hints: Topology hints last sent by the controller during a call to update_interfaces(). """ class Meta(DefaultMeta): verbose_name = "ControllerInfo" objects = ControllerInfoManager() node = OneToOneField(Node, null=False, blank=False, on_delete=CASCADE, primary_key=True) version = CharField(max_length=255, null=True, blank=True) interfaces = JSONObjectField(max_length=(2**15), blank=True, default="") interface_update_hints = JSONObjectField(max_length=(2**15), blank=True, default="") def __str__(self): return "%s (%s)" % (self.__class__.__name__, self.node.hostname)
class Medico(Model): DISPONIBLE = 1 NO_DISPONIBLE = 2 EN_AUXILIO = 3 ESTADO_CHOICES = ( (DISPONIBLE, 'Disponible'), (NO_DISPONIBLE, 'No disponible'), (EN_AUXILIO, 'En auxilio') ) dni = PositiveIntegerField(primary_key=True, verbose_name='DNI', validators=[MaxValueValidator(99999999), MinValueValidator(1000000)]) matricula = PositiveIntegerField(unique=True, verbose_name=u'matrícula') telefono = CharField(max_length=15, verbose_name=u'teléfono') usuario = OneToOneField(User, related_name='medico_usuario', on_delete=CASCADE) fcm_code = CharField(max_length=250, blank=True, verbose_name='FCM', help_text='Firebase Cloud Messaging Code') estado = PositiveSmallIntegerField(choices = ESTADO_CHOICES, default = NO_DISPONIBLE) generador = ForeignKey(User, related_name='medico_generador') latitud_gps = FloatField(blank=True, null=True, validators=[MaxValueValidator(180.0), MinValueValidator(-180.0)]) longitud_gps = FloatField(blank=True, null=True, validators=[MaxValueValidator(180.0), MinValueValidator(-180.0)]) timestamp_gps = DateTimeField(blank=True, null=True, help_text=u'Última actualización de ubicación GPS') def __str__(self): return self.usuario.get_full_name() + str(self.matricula) class Meta: ordering = ['dni'] verbose_name = u'médico' verbose_name_plural = u'médicos'
class RoadmapSettings(Model): """ Model that contains the roadmap settings """ roadmap = OneToOneField(Roadmap, primary_key=True) creator = ForeignKey(Profile, related_name="roadmap_creator") # TODO should this be a part of RoadmapSettings? owners = ManyToManyField(Profile, related_name="roadmap_owners") editors = ManyToManyField(Profile, related_name="roadmap_editors") listed_in_main = BooleanField('show this roadmap in the search results', default=False) sudo_listed_in_main = BooleanField('superuser only: allow this roadmap in the search results', default=True) published = BooleanField(default=False) url_tag = SlugField('URL tag', max_length=30, help_text='only letters, numbers, underscores, hyphens') class Meta: unique_together = ('creator', 'url_tag') def get_absolute_url(self): return '/roadmaps/%s/%s' % (self.creator.user.username, self.url_tag) def is_published(self): return self.published def is_listed_in_main(self): return self.is_published() and self.listed_in_main and self.sudo_listed_in_main def can_change_settings(self, user): # superusers and owners can change settings return user.is_superuser or (user.is_authenticated() and self.owners.filter(user=user).exists()) def editable_by(self, user): # superusers, owners and editors can edit return user.is_superuser or (user.is_authenticated() and (self.owners.filter(user=user).exists() or self.editors.filter(user=user).exists()))
class VirtualMachine(CleanSave, TimestampedModel): """A virtual machine managed by a VM host.""" identifier = TextField() pinned_cores = ArrayField(IntegerField(), blank=True, default=list) unpinned_cores = IntegerField(default=0, blank=True) memory = IntegerField(default=0) hugepages_backed = BooleanField(default=False) machine = OneToOneField( Machine, SET_NULL, default=None, blank=True, null=True, editable=False, related_name="virtualmachine", ) bmc = ForeignKey(BMC, editable=False, on_delete=CASCADE) class Meta: unique_together = [("bmc", "identifier")] def clean(self): super().clean() if self.pinned_cores and self.unpinned_cores: raise ValidationError( "VirtualMachine can't have both pinned and unpinned cores" )
class UserRelationInfo(Model): # 用户亲属关系表 user = OneToOneField(Profile, primary_key=True, db_column='user_id', verbose_name='用户') relation_type = CharField(max_length=10, default='父亲', blank=True, verbose_name='关系') relation_name = CharField(max_length=50, default='李天一', blank=True, verbose_name='姓名') relation_phone = CharField(max_length=32, default='13788740727', verbose_name='手机号') relation_email = EmailField(blank=True, default='*****@*****.**', verbose_name='邮箱') relation_address = CharField(max_length=200, default='湖南', verbose_name='家庭住址') comments = CharField(max_length=500, blank=True, verbose_name='备注') class Meta: app_label = 'education' db_table = 'user_relation_info' verbose_name = '用户亲属关系' verbose_name_plural = '用户亲属关系' def __unicode__(self): return u'{0}-{1}-{2}'.format(self.user.username, self.relation_type, self.relation_name)
class BlenderSubtaskDefinition(Model): """ For each VerificationRequest there must be exactly one BlenderSubtaskDefinition in the database. """ class OutputFormat(ChoiceEnum): JPG = 'jpg' PNG = 'png' EXR = 'exr' # Foreign key to VerificationRequest. Can't be NULL and must be unique. verification_request = OneToOneField( VerificationRequest, unique=True, related_name='blender_subtask_definition') # Type of the output image to be produced by Blender. This determines the file extensions. # Only formats supported by Blender should be allowed here. # This value is passed to Blender using the -F command-line option. output_format = CharField(max_length=32, choices=OutputFormat.choices()) # Relative path to the .blend file inside the source package. scene_file = CharField(max_length=MESSAGE_PATH_LENGTH) # Source code of the Python script to be executed by Blender. blender_crop_script = TextField(blank=True, null=True)
class CollectionImage(models.Model): image = OneToOneField(ImageObj) collection_post = models.ForeignKey(CollectionPost, related_name='images') order = models.PositiveSmallIntegerField(default=0) block = models.ForeignKey(CollectionImagesBlock, related_name='images', null=True)
class Profile(Model): """ User representation """ user = OneToOneField(User, related_name='forum_profile', verbose_name=_('User'), on_delete=PROTECT) location = CharField(_('Location'), max_length=30, blank=True) post_count = IntegerField(_('Post count'), blank=True, default=0) objects = ProfileManager() class Meta: verbose_name = _('Profile') verbose_name_plural = _('Profiles') def last_post(self): """ return last post id for the current user """ posts = Post.objects.filter( profile__id=self.profile_id).order_by('-created') if posts: return posts[0].created else: return None def __str__(self): return str(self.user)
class Supplier(Role): """Supplier model.""" party = OneToOneField("users.Party", related_name="supplier", on_delete=CASCADE, primary_key=True)
class Delivery(Model): """Clase que representa una Entrega""" status = BooleanField(default=False, help_text='estado') delivery_time = DateTimeField(auto_now_add=True, help_text='hora entrega') class Meta: verbose_name_plural = 'deliveries' # Relaciones courier = ForeignKey( Courier, related_name='deliveries', on_delete=CASCADE, help_text='mensajero' ) order = OneToOneField( Order, related_name='delivery', on_delete=CASCADE, help_text='orden de pedido' ) def __str__(self) -> str: """ Función que representa al objeto cuando es recuperado """ return self.status
class Balance(models.Model): """ 余额 """ # 关联用户 user = OneToOneField(User, related_name='balance', on_delete=models.CASCADE) # 余额 value = IntegerField() # 主键 balance_id = CharField(max_length=32, primary_key=True) # 创建时间 create_time = DateTimeField(auto_now_add=True) # 更新时间 update_time = DateTimeField(auto_now=True) def __str__(self): return self.user.nick_name pass
class PropertyAddress(AbstractPropertyBaseModel): """ Property's Address Model""" PROPERTY_ADDRESS = "propertyAddress" ADDRESS = "address" STATE_NAME = "stateName" LATITUDE = "latitude" LONGITUDE = "longitude" class Meta: verbose_name_plural = "Property Addresses" property = OneToOneField( Property, related_name="propertyAddress", on_delete=CASCADE ) address = CharField(default=None, max_length=255) stateName = CharField("State name", max_length=50, blank=True) latitude = FloatField( default=0.00, blank=True, ) longitude = FloatField( default=0.00, blank=True, )
class Customer(Model): user = OneToOneField(User, null=True, blank=True, on_delete=CASCADE) name = CharField(max_length=70, null=True) email = CharField(max_length=40, null=True) def __str__(self): return self.name @property def all_loyalty_points(self): orders = self.order_set.all() total_loyalty_points = sum([order.loyalty_points for order in orders]) return total_loyalty_points @property def bought_products(self): all_orders = self.order_set.all() orders = all_orders.filter(complete=True) user_products = [] for order in orders: items = order.orderitems for item in items: if item.name in user_products: pass else: user_products.append(item.name) return user_products
class HomeInfo(SingletonModel): facebook_url = CharField(_('facebook_url'), max_length=255, blank=True) instagram_url = CharField(_('instagram_url'), max_length=255, blank=True) twitter_url = CharField(_('twitter_url'), max_length=255, blank=True) video_banner_url = TextField(_('video_banner_url')) logo_url = TextField(_('logo_url')) info_1 = CharField(_('info_1'), max_length=255, blank=True) info_2 = CharField(_('info_2'), max_length=255, blank=True) featured_video = OneToOneField( Video, default=get_latest_video_pk, on_delete=SET_DEFAULT, ) class Meta: verbose_name = _('Home Page Info') def __str__(self): return 'Home Page Info' def get_info_name(self): return 'home'
class OfficerImg(Model): """Officer headshots""" officer = OneToOneField(User, on_delete=CASCADE, related_name="img") img = ImageField(upload_to=path_and_rename, storage=OverwriteStorage(), verbose_name="Image") def __str__(self): return self.officer.name
class AddressMatch(Model): """ Contact address """ survey = OneToOneField( "surveys19.Survey", related_name="address_match", on_delete=CASCADE, verbose_name=_("Survey"), ) match = BooleanField(default=False, verbose_name=_("Address Match")) mismatch = BooleanField(default=False, verbose_name=_("Address MisMatch")) address = CharField(max_length=100, null=True, blank=True, verbose_name=_("Address")) update_time = DateTimeField( auto_now=True, auto_now_add=False, null=True, blank=True, verbose_name=_("Updated"), ) class Meta: verbose_name = _("AddressMatch") verbose_name_plural = _("AddressMatch") def __str__(self): return str(self.survey)
class UserDetails(Model): user = OneToOneField( to=User, on_delete=CASCADE, # 级联删除 db_constraint=False, # False表示逻辑外键 db_column='id', primary_key=True, related_name='details', # 默认类名全小写 ) motto = CharField( max_length=255, verbose_name='个性签名', default=None, blank=True, null=True ) favorite_color = FixedCharField( max_length=6, null=True, blank=True, default=None, charset='ascii', verbose_name='页面颜色' ) gender = BooleanField( null=True, blank=True, default=None, verbose_name='性别', choices=((True, '女'), (False, '男'), (None, '未指定')) ) class Meta: verbose_name = "用户资料" verbose_name_plural = "用户资料"
class Enterprise(Model): """Clase que representa una Establecimiento""" name = CharField(max_length=45, help_text='nombre') historical_review = TextField(null=True, blank=True, help_text='reseña historica') location = CharField(max_length=45, help_text='ubicación') business_hours = CharField(max_length=45, null=True, blank=True, help_text='horario de atención') status = BooleanField(default=True, help_text='estado') created = DateTimeField(auto_now_add=True, help_text='creado') # Relaciones image = OneToOneField('products.Image', null=True, blank=True, on_delete=CASCADE, help_text='imagen') managers = ManyToManyField('users.Manager', through='Management', related_name='enterprises', help_text='administradores de establecimiento') def __str__(self) -> str: """ Función que representa al objeto cuando es recuperado """ return self.name
class Client(Resource): """ 使用此评测端的用户端。 """ # 编号 id = BigAutoField(primary_key=True) # 绑定的用户(用于进行身份识别) user = OneToOneField(User, related_name='client') # 名称 name = CharField(max_length=128) # 简介 introduction = TextField() # 是否允许使用本端全部题库及题目 allow_all = BooleanField(default=False) # 可用的题库数量 number_category = IntegerField(default=0) # 可用的题目数量 number_problem = IntegerField(default=0) # 允许此用户端使用的题库 categories = ManyToManyField(Category, related_name='clients', through='ClientCategory', through_fields=('client', 'category'))
class Receiver(Model): """ Model for people who collect deliveries """ user = OneToOneField(user_model, on_delete=CASCADE) group = ForeignKey('ReceiverGroup', on_delete=CASCADE, blank=True, null=True) company = ForeignKey('ReceiverCompany', on_delete=CASCADE, blank=True, null=True) email = EmailField(_('Email Address'), blank=True, null=True) first_name = CharField(_('First Name'), max_length=20, blank=False, null=False) last_name = CharField(_('Last Name'), max_length=20, blank=True, null=True) nickname = CharField(_('Nickname'), max_length=20, blank=True, null=True) phone_number = CharField(_('Phone Number'), max_length=20, blank=True, null=True) class Meta: verbose_name = _('Receiver') verbose_name_plural = _('Receivers') def __repr__(self): return f'{self.first_name} {self.last_name}' def __str__(self): return f'{self.first_name} {self.last_name}'
class Response(models.Model): id = CharField(max_length=36, default=uuid4, primary_key=True) request = OneToOneField( Request, related_name='response', db_index=True, on_delete=models.CASCADE, ) status_code = IntegerField() raw_body = TextField(blank=True, default='') body = TextField(blank=True, default='') encoded_headers = TextField(blank=True, default='') @property def content_type(self): return self.headers.get('content-type', None) @property def headers(self): if self.encoded_headers: raw = json.loads(self.encoded_headers) else: raw = {} return CaseInsensitiveDictionary(raw) @property def raw_body_decoded(self): if self.raw_body: return base64.b64decode(self.raw_body) else: return ''
class AdminUser(Model): user = OneToOneField(DjangoUser, on_delete=CASCADE, primary_key=True) vk_id = CharField(max_length=100) vk_token = CharField(max_length=400) def __str__(self): return str(self.vk_id)
class UserProfile(Model): id = UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True) user = OneToOneField(User, on_delete=CASCADE, related_name='profile') role = CharField(max_length=1, choices=UserRole.CHOICES, default=UserRole.USUAL) is_system = BooleanField(default=False) login = CharField(null=False, unique=True, max_length=255) name = CharField(null=False, max_length=255) updated_at = DateTimeField(auto_now=True, editable=False) created_at = DateTimeField(auto_now_add=True, editable=False) is_active = BooleanField(default=True) objects = Manager() active = ActiveObjectManager() system_user = SystemUserObjectManager() class Meta: verbose_name = "User Profile" ordering = ('pk', ) indexes = [Index(fields=['is_system'])] def __str__(self): return self.login @staticmethod def get_profile_by_user(user): return UserProfile.objects.filter(user=user.id).first()
class GroupInformation(Model): name = CharField(max_length=120, verbose_name=_('Name')) group = OneToOneField(Group, on_delete=CASCADE, related_name='info', verbose_name=_('Group')) email_dns = CharField(max_length=255, validators=[URLValidator], verbose_name=_('Email Dns')) parent = ForeignKey('self', null=True, blank=True, on_delete=SET_NULL, verbose_name=_('Parent')) objects = GroupInformationQuerySet.as_manager() class Meta: verbose_name = _('Group Information') verbose_name_plural = _('Group Informations') def __str__(self): return str(self.group.name) def __unicode__(self): return str(self.group.name) def parents(self): parents = [self] lock = False obj = self while not lock: parent = obj.parent if parent: parents.append(parent) obj = parent else: lock = True return parents @property def has_child(self): return GroupInformation.objects.filter(parent=self).count() > 0
class Money(Model): '''additional field for user''' user = OneToOneField(User, on_delete=CASCADE, related_query_name='moneys', related_name='money') coins = PositiveIntegerField(default=0)
class UserInformation(Model): user = OneToOneField(settings.AUTH_USER_MODEL, on_delete=CASCADE, related_name='info', verbose_name=_('User')) event_editor = BooleanField(default=False, verbose_name=_('Event Editor')) watchlist_viewer = BooleanField(default=False, verbose_name=_('Watchlist Viewer')) menu_viewer = BooleanField(default=False, verbose_name=_('Menu Item Viewer')) reporter = BooleanField(default=False, verbose_name=_('Reporter')) alert_viewer = BooleanField(default=True, verbose_name=_('Alert Viewer')) monitor_info_viewer = BooleanField(default=True, verbose_name=_('Monitor Info Viewer')) amislist_viewer = BooleanField(default=False, verbose_name=_('Amis List Viewer')) festivalreport_viewer = BooleanField(default=False, verbose_name=_('Festival Report Viewer')) festivalreport_refresh = BooleanField(default=False, verbose_name=_('Festival Report Refresh')) profile = ImageField(upload_to=upload_location, null=True, blank=True, verbose_name=_('Profile')) class Meta: verbose_name = _('User Information') verbose_name_plural = _('User Informations') def __str__(self): return str(self.full_name) def __unicode__(self): return str(self.full_name) @property def full_name(self): name = str(self.user.last_name) + str(self.user.first_name) if name == '': name = self.user.username return name
class Subsidy(Model): """ Table 3.3.1 -> 3.3.2 """ survey = OneToOneField( "surveys20.Survey", related_name="subsidy", on_delete=CASCADE, verbose_name=_("Survey"), ) has_subsidy = BooleanField(default=False, verbose_name=_("Has Subsidy")) none_subsidy = BooleanField(default=False, verbose_name=_("None Subsidy")) update_time = DateTimeField( auto_now=True, auto_now_add=False, null=True, blank=True, verbose_name=_("Updated"), ) class Meta: verbose_name = _("Subsidy") verbose_name_plural = _("Subsidy") def __str__(self): return str(self.survey)
class FormularioFinalizacion(Model): asignacion = OneToOneField(Asignacion, on_delete=CASCADE, primary_key=True) asistencia_realizada = BooleanField() observaciones = TextField(blank=True) # Asistencia realizada FALSE OTRO = 0 UBICACION_INCORRECTA = 1 NO_RESPONDE = 2 YA_FUE_TRANSLADADO = 3 INASISTENCIA_CHOICES = ((UBICACION_INCORRECTA, u'Ubicación incorrecta'), (NO_RESPONDE, 'No responde'), (YA_FUE_TRANSLADADO, 'Ya fue trasladado'), (OTRO, 'Otro')) motivo_inasistencia = PositiveSmallIntegerField( blank=True, null=True, choices=INASISTENCIA_CHOICES, verbose_name='motivo de inasistencia', help_text=u'¿Por qué no pudo asistir al paciente?') # Asistencia realizada TRUE CORRECTO = 0 SUBCATEGORIZADO = 1 SOBRECATEGORIZADO = 2 OPINION_CHOICES = ((SUBCATEGORIZADO, 'Sub-categorizado'), (CORRECTO, 'Apropiadamente categorizado'), (SOBRECATEGORIZADO, 'Sobre-categorizado')) categorizacion = PositiveSmallIntegerField( blank=True, null=True, choices=OPINION_CHOICES, verbose_name=u'categorización', help_text= u'¿Cuál es su opinión acerca de la categorización del auxilio?') pacientes = ManyToManyField('Paciente', blank=True)