示例#1
0
class CreatedModifiedByMixin(models.Model):
    """
    Mixin which adds Created By, Modified By aswell as Timestamps to your model
    """
    class Meta:
        abstract = True

    created_by = UserForeignKey(
        verbose_name=_(u"User that created this element"),
        auto_user_add=True,  # sets the current user when the element is created
        null=True,
        related_name='%(class)s_created')

    created_at = models.DateTimeField(
        verbose_name=_(u"Date when this element was created"),
        auto_now_add=True,  # sets the date when the element is created
        editable=False,
        null=True,
        db_index=True,
    )

    last_modified_by = UserForeignKey(
        verbose_name=_(u"User that last modified this element"),
        auto_user=True,  # sets the current user everytime the element is saved
        null=True,
        related_name='%(class)s_modified')

    last_modified_at = models.DateTimeField(
        verbose_name=_(u"Date when this element was last modified"),
        auto_now=True,  # sets the date everytime the element is saved
        editable=False,
        null=True,
        db_index=True,
    )
示例#2
0
class TimeStampModel(models.Model):
    """
    TimeStampModel acts as an abstract base class from which every other model in the project will inherit.
    This class
    provides every table with the following attributes:
        + created (DateTime): Store
        + modified (DateTime): Store
    """
    created = models.DateTimeField(
        "created_at",
        auto_now_add=True,
        blank=True,
        help_text="Date time on which the object was created.",
    )
    modified = models.DateTimeField(
        "modified_at",
        auto_now=True,
        blank=True,
        help_text="Date time on which the object was last modified.",
    )
    deleted_at = models.DateTimeField("deleted_at", blank=True, null=True)
    creator = UserForeignKey(auto_user_add=True, related_name="+")
    modifier = UserForeignKey(auto_user=True, related_name="+")
    status = models.BooleanField("status",
                                 default=True,
                                 help_text="Status the object has currently")

    class Meta:
        """Meta option."""
        abstract = True
        get_latest_by = "created"
        ordering = ["-created", "-modified"]  # descendent
示例#3
0
class ClaseModelo2(models.Model):
	estado = models.BooleanField(default=True)
	fc = models.DateTimeField(auto_now_add=True)
	fm = models.DateTimeField(auto_now=True)
	#uc = models.ForeignKey(User, on_delete=models.CASCADE)
	#um = models.IntegerField(blank=True,null=True)
	uc = UserForeignKey(auto_user_add=True,related_name='+')
	um = UserForeignKey(auto_user=True,related_name='+')
示例#4
0
class ModeloBase(models.Model):
    estado = models.BooleanField(default=True)
    creacion = models.DateTimeField(auto_now_add=True)
    edicion = models.DateTimeField(auto_now=True)
    user_create = UserForeignKey(auto_user_add=True, related_name='+')
    user_update = UserForeignKey(auto_user=True, related_name='+')

    class Meta:
        abstract = True
示例#5
0
class ClaseModelo(models.Model):
    estado = models.BooleanField(default=True)
    fecha_creacion = models.DateTimeField(auto_now_add=True)
    fecha_modificacion = models.DateTimeField(auto_now=True)
    usuario_creacion = UserForeignKey(auto_user_add=True, related_name='+')
    usuario_modificacion = UserForeignKey(auto_user=True, related_name='+')

    class Meta:
        abstract = True
示例#6
0
class Generic(models.Model):

    class Meta:
        abstract = True

    created_time = models.DateTimeField(_("created at"), auto_now_add=True, editable=False)
    updated_time = models.DateTimeField(_("updated"), auto_now=True, editable=False, null=True, blank=True)
    created_by = UserForeignKey(auto_user_add=True, related_name="+")
    updated_by = UserForeignKey(auto_user=True, auto_user_add=True, related_name="+")
示例#7
0
class ModelClass2(models.Model):
    status = models.BooleanField(default=True)
    creationDate = models.DateTimeField(auto_now_add=True)
    modificationDate = models.DateTimeField(auto_now=True)
    userCreator = UserForeignKey(auto_user_add=True, related_name='+')
    userModifier = UserForeignKey(auto_user=True, related_name='+')

    class Meta:
        abstract = True
示例#8
0
class MyModel(models.Model):
    estado = models.BooleanField(default=True)
    fc = models.DateTimeField(auto_now_add=True)
    fm = models.DateTimeField(auto_now=True)
    uc = UserForeignKey(auto_user_add=True, related_name="+")
    um = UserForeignKey(auto_user=True, related_name="+")

    class Meta:
        abstract = True
示例#9
0
class ClassModel2(models.Model):
    status = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    created_by = UserForeignKey(auto_user_add=True, related_name="+")
    updated_by = UserForeignKey(auto_user_add=True, related_name="+")

    class Meta:
        abstract = True
示例#10
0
class FinalAnnotation(models.Model):
    scan = ForeignKey(Scan, on_delete=CASCADE)
    retirement = ForeignKey(Retirement, on_delete=CASCADE, null=True)
    question = models.CharField(max_length=255, blank=True)
    answer = models.TextField(blank=True)
    created_on = models.DateTimeField(auto_now_add=True)
    modified_on = models.DateTimeField(auto_now=True)
    created_by = UserForeignKey(auto_user_add=True, on_delete=PROTECT,
                                related_name='added_final_annotations')
    modified_by = UserForeignKey(auto_user=True, on_delete=PROTECT,
                                 related_name='modified_final_annotations')
示例#11
0
class ClaseModelo2(models.Model):
    estado = models.BooleanField(default=True)
    fechaCreacion = models.DateTimeField(auto_now_add=True)
    fechaModificado = models.DateTimeField(auto_now=True)
    # uc = models.ForeignKey(User, on_delete=models.CASCADE)
    # um = models.IntegerField(blank=True,null=True)
    usuarioCrea = UserForeignKey(auto_user_add=True, related_name='+')
    usuarioModifica = UserForeignKey(auto_user=True, related_name='+')

    class Meta:
        abstract = True
示例#12
0
class AnnotationField(models.Model):
    name = models.CharField(max_length=255)
    created_on = models.DateTimeField(auto_now_add=True)
    modified_on = models.DateTimeField(auto_now=True)
    created_by = UserForeignKey(auto_user_add=True, on_delete=PROTECT,
                                related_name='added_annotation_fields')
    modified_by = UserForeignKey(auto_user=True, on_delete=PROTECT,
                                 related_name='modified_annotation_fields')

    class Meta:
        ordering = ["name"]
示例#13
0
class ClaseModeloDos(models.Model):

    estado = models.BooleanField(default = True)
    fc = models.DateTimeField(auto_now_add=True)
    fm = models.DateTimeField(auto_now=True)
    # uc = models.ForeignKey(User, on_delete=models.CASCADE)
    # um = models.IntegerField(blank=True, null=True)
    # * WITH '+' AVOIDS TO GENERATE A SEARCH REGISTER WHEN LOOKING FOR THE USER
    uc = UserForeignKey(auto_user_add=True, related_name='+')
    um = UserForeignKey(auto_user=True,related_name='+')

    class Meta:
        abstract=True
示例#14
0
class ClassModelo2(models.Model):

    estado = models.BooleanField(default=True)
    fc = models.DateTimeField(
        auto_now_add=True)  #Se coloca una unica vez con auto_now_add
    fm = models.DateTimeField(
        auto_now=True)  #Se coloa siempre y cuanda se modifique con auto_now
    # uc = models.ForeignKey(User, on_delete = models.CASCADE)
    # um = models.IntegerField(blank = True, null = True)
    uc = UserForeignKey(auto_user_add=True, related_name='+')
    um = UserForeignKey(auto_user=True, related_name='+')

    class Meta:
        abstract = True  #Aqui le decimos a django q no lo tome en cuenta al momento de hacer la migraciones
示例#15
0
class BaseModel(models.Model):
    created_by = UserForeignKey(auto_user_add=True,
                                related_name="%(app_label)s_%(class)s_related",
                                related_query_name="%(app_label)s_%(class)ss")
    created_at = models.DateTimeField(auto_now_add=True)
    last_modified_by = UserForeignKey(
        auto_user=True,
        auto_user_add=True,
        related_name="%(app_label)ss_%(class)s_related",
        related_query_name="%(app_label)s_%(class)ss")
    last_modified_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True
示例#16
0
class ClaseModelo2(models.Model):
    estado = models.BooleanField('Estado', default=True)
    # Automatica mente se pone la fecha cuando se crea con la propiedad 'auto_now_add'
    fc = models.DateTimeField('Fecha De Creación', auto_now_add=True)
    # esta fecha se modifica cada vez que se realice una accion 'auto_now'
    fm = models.DateTimeField('Fecha de Modificacion', auto_now=True)
    # Llave foranea que se optiene del usuario uno (Usuario) a muchos (Modelo)
    #uc = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name = "Usuario Crea")
    #um = models.IntegerField('Usuario Modifica', blank=True, null=True)
    uc = UserForeignKey(auto_user_add=True, related_name='+', verbose_name = "Usuario Crea")
    um = UserForeignKey(auto_user=True, related_name='+', verbose_name = "Usuario Modifica")

    #Se crea esta clase para que no tenga encuenta este modelo a la hora de la migracion
    class Meta:
        abstract = True
示例#17
0
class Scan(models.Model):
    image = ImageField(upload_to='scans', null=True)
    type = models.CharField(max_length=50)
    text = models.TextField()
    status = models.CharField(max_length=25)
    created_on = models.DateTimeField(auto_now_add=True)
    modified_on = models.DateTimeField(auto_now=True)
    created_by = UserForeignKey(auto_user_add=True,
                                on_delete=PROTECT,
                                related_name='added_scans')
    modified_by = UserForeignKey(auto_user=True,
                                 on_delete=PROTECT,
                                 related_name='modified_scans')
    history = HistoricalRecords(
        history_change_reason_field=models.TextField(null=True), inherit=True)
示例#18
0
class UserExternalTool(models.Model):
    external_tool = models.ForeignKey(ExternalTool,on_delete=models.DO_NOTHING)
    user = UserForeignKey(auto_user_add=True)
    user_access_info = models.CharField(max_length=5000,null=True)

    def __str__(self):
        return self.external_tool.name
示例#19
0
class Advertisement(models.Model):
    ''' Model of an advertisement made by user (UserForeignKey package used) to sell a car '''
    brand = models.ForeignKey(CarBrand, on_delete=models.CASCADE, verbose_name='Марка машины')
    body_type = models.ForeignKey(BodyType, on_delete=models.CASCADE, verbose_name='Тип кузова')
    gear_box = models.ForeignKey(GearBox, on_delete=models.CASCADE, verbose_name='Коробка передач')
    drive = models.ForeignKey(Drive, on_delete=models.CASCADE, verbose_name='Привод')
    color = models.ForeignKey(Color, on_delete=models.CASCADE, verbose_name='Цвет')
    cover_img = models.ImageField(upload_to='photos/%Y/%m/%d', verbose_name='Обложка объявления')
    year = models.IntegerField(verbose_name='Год выпуска')
    mileage = models.IntegerField(verbose_name='Пробег')
    engine_capacity = models.ForeignKey(EngineCapacity, on_delete=models.CASCADE, verbose_name='Литраж')
    description = RichTextUploadingField(verbose_name='Описание')
    seller = UserForeignKey(auto_user_add=True, on_delete=models.CASCADE, verbose_name='Продавец',
                            related_name='advertisement')
    price = models.IntegerField(verbose_name='Цена')
    is_published = models.BooleanField(default=False, verbose_name='Опубликовано?')
    pub_date = models.DateTimeField(auto_now_add=True, verbose_name='Дата публикации')

    def __str__(self):
        return f"{self.brand}, {self.color}, {self.seller}, {self.price}"

    def get_absolute_url(self):
        return reverse('advertisement', kwargs={'pk': self.pk})

    class Meta:
        ordering = ['-pub_date']
        verbose_name = 'Обьявление'
        verbose_name_plural = 'Обьявления'
示例#20
0
class Enrolled(models.Model):
    id = models.AutoField(primary_key=True)
    student_id = UserForeignKey(auto_user_add=True, on_delete=models.CASCADE)
    subject_id = models.ForeignKey(Subject, on_delete=models.PROTECT)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    objects = models.Manager()
示例#21
0
class Article( models.Model):
    subject    = models.CharField(max_length=30, unique=True)
    message    = RichTextUploadingField(blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True,null=True)
    updated_at = models.DateTimeField( auto_now=True, null=True)
    author     = UserForeignKey(auto_user_add=True, on_delete=models.CASCADE)
    college    = models.ForeignKey(College, on_delete=models.CASCADE)
    picture    = models.ImageField(upload_to='article_images',null=True, default="")
    likes      = models.ManyToManyField(User, related_name='article_likes', blank=True)
    dislikes      = models.ManyToManyField(User, related_name='article_dislikes', blank=True)# likes field
    tags       = TaggableManager()


    def snippet(self):
        return self.message[:30]+ '........'
    
    def __str__(self):
        return self.subject

#   def highrated(request):
   
    def get_absolute_url(self):
        return reverse('article_details', kwargs={'pk': self.pk})
    
    
    def get_message_as_markdown(self):
        return mark_safe(markdown(self.message, safe_mode='escape'))

    
    def get_like_url(self):
        return reverse('like_toggle', kwargs={'pk': self.pk})

    def get_dislike_url(self):
        return reverse('dislike_toggle', kwargs={'pk': self.pk})
示例#22
0
class SmartHome(models.Model):
    """
    A SmartHome contains several smart devices, sensors, etc...
    """
    name = models.CharField(max_length=256,
                            verbose_name=_("Name of the smart home"))

    description = models.TextField(
        verbose_name=_("Additional information for the smart home"))

    address = models.CharField(
        max_length=256,
        verbose_name=_(
            "Address of the smart home (e.g., used for weather information)"))

    created_by = UserForeignKey(
        auto_user_add=True,
        editable=False,
    )

    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name = _("Smart Home")
        verbose_name_plural = _("Smart Homes")

    def __str__(self):
        return self.name
示例#23
0
class SnippetFavorite(BaseModel):

    objects = SnippetFavoriteManager()

    snippet = models.ForeignKey(
        "Snippet",
        related_name="snippet_favorites",
        verbose_name="Snippet",
        on_delete=models.CASCADE,
        null=False,
        blank=False,
    )

    user = UserForeignKey(
        auto_user_add=True,
        related_name="snippet_favorites",
        verbose_name="User",
        editable=False,
        on_delete=models.CASCADE,
    )

    def __str__(self):
        return f"{force_str(self.snippet)} - {force_str(self.user)}"

    class Meta:
        constraints = [
            models.UniqueConstraint(fields=["snippet", "user"],
                                    name="user_and_snippet_uniq")
        ]
示例#24
0
class Neonato(models.Model):
    dato = models.CharField(max_length=100,
                            verbose_name='Datos del R.N.',
                            help_text='Apellido Paterno  Apellido Materno  RN')
    fecha = models.DateTimeField(default=datetime.now,
                                 blank=True,
                                 verbose_name='Fecha y Hora Nacimiento')
    sexo = models.CharField(max_length=20,
                            choices=(('Masculino', 'Masculino'), ('Femenino',
                                                                  'Femenino')))
    tipo = models.CharField(max_length=20,
                            verbose_name='Tipo - Parto',
                            choices=(('Natural', 'Natural'), ('Cesarea',
                                                              'Cesarea')))
    dni = models.CharField(max_length=8, verbose_name='DNI - Madre o Tit.')
    reg = models.BooleanField(
        default=False,
        verbose_name='Registrado',
        help_text=
        'Registrado-Marcara solo en Modulo cuando Neonato es Hospitalizado')
    user = UserForeignKey(auto_user_add=True, verbose_name='Usuario')
    transf = models.CharField(max_length=20,
                              verbose_name='Transferir.',
                              choices=(('Ucin', 'Ucin'), ('InterMedio - 1',
                                                          'InterMedio - 1'),
                                       ('InterMedio - 2', 'InterMedio - 2')),
                              blank=True)

    def __str__(self):
        return self.dato

    def save(self, *args, **kwargs):
        self.dato = self.dato.upper()
        super(Neonato, self).save(*args, kwargs)
示例#25
0
class Rack(models.Model):
    name = models.CharField(max_length=150, unique=True)
    max_size = models.IntegerField()
    uid = models.CharField(max_length=50, unique=True)
    created_by = UserForeignKey(auto_user_add=True,
                                null=True,
                                related_name='rack_created_by')
    updated_by = UserForeignKey(auto_user_add=True,
                                related_name='rack_updated_by')
    created_at = models.DateTimeField(auto_now_add=True, null=True)
    updated_at = models.DateTimeField(auto_now=True, null=True)

    def __str__(self):
        return "%s" % self.name

    def __unicode__(self):
        return u'%s' % self.name
class ClaseModelo2(models.Model):
    estado = models.BooleanField(
        default=True
    )  #'default' para que cada vez que se agreguen datos por default sea verdadero el campo.
    fc = models.DateTimeField(
        auto_now_add=True
    )  #'auto_now_add' para que solo se actualice la fecha cuando se agregue el campo.
    fm = models.DateTimeField(
        auto_now=True
    )  #'auto_now' para que siempre que pase algo con el registro se actualice la fecha.
    # uc = models.ForeignKey(User, on_delete=models.CASCADE) #Conexión con la user que ya tiene django por default.
    # um = models.IntegerField(blank=True,null=True) #No se pueden tener dos ForeignKey, por lo tanto sera tipo entero y puede quedar en blanco.
    uc = UserForeignKey(auto_user_add=True, related_name='+')
    um = UserForeignKey(auto_user=True, related_name='+')

    class Meta:
        abstract = True  #Para que a la hora de hacer migraciones, no tome encuenta esta clase.
示例#27
0
class TaskLogs(models.Model):
    # Si desea que cuando se elimine un usuario, tambien se eliminen sus logs descomente linea 23 y comente 24
    # user_id = UserForeignKey(auto_user_add=True, selete=models.CASCADE) 
    user_id = UserForeignKey(auto_user_add=True) 
    date_log = models.DateTimeField(auto_now_add=True, null=False, blank=True)
    action_log = models.CharField(max_length=200, verbose_name=u"Logs")
    class Meta:
        verbose_name = ('Log de usuarios')
        verbose_name_plural = ('Logs de usuarios')
示例#28
0
class Comment(models.Model):
    article     = models.ForeignKey(Article, on_delete=models.CASCADE)
    user        = UserForeignKey(auto_user_add=True, on_delete=models.CASCADE)
    reply       = models.ForeignKey('Comment', null=True, related_name='replies', on_delete=models.CASCADE)
    content     = models.TextField(max_length = 160, default="")
    timestamp   = models.DateTimeField(auto_now_add=True)
   
    def __str__(self):
        return '{}-{}'.format(self.article.subject, str(self.user.username))
示例#29
0
class Dashboard(models.Model):
    title = models.CharField(max_length=255)
    content = models.TextField(blank=True, null=True)
    user = UserForeignKey(auto_user_add=True)
    created_at = models.DateTimeField(auto_now_add=True)
    modified_at = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ('title', )
示例#30
0
class UserLanguages(models.Model):
    user = UserForeignKey(auto_user_add=True)
    learning_language = models.ForeignKey(Language, null=True, on_delete=models.DO_NOTHING,related_name='learning')
    preferred_language = models.ForeignKey(Language, null=True, on_delete=models.DO_NOTHING,related_name='preffered')

    def clean(self, *args, **kwargs):

        if self.learning_language == self.preferred_language:
            raise ValidationError("Please select different languages")
        super(UserLanguages,self.clean(*args, **kwargs))