Django Models

DJANGO


Use values() to get particular attribute which will return you list of dicts, like

file_s = Share.objects.filter(shared_user_id=log_id).values('files_id')

file_s = Share.objects.filter(shared_user_id=log_id).values_list('files_id', flat=True).order_by('id')

Sample Model Class 

Get Value using Django Query

 

 

class stock_dividend_m(models.Model):
    portfolio = models.ForeignKey(Portfolio_m, on_delete=models.CASCADE,verbose_name='portfolio name')
    stocklist = models.ForeignKey(StockList_m, on_delete=models.CASCADE,verbose_name='Stock Code')
    divdate = models.DateField()
    divpershare = models.DecimalField('Dividend per Share',max_digits=10, decimal_places=2 , default = 0 )
    totshare = models.IntegerField('No of Shares',default = 0)
    divamt = models.DecimalField('Total Dividend',max_digits=10, decimal_places=2 , default = 0 )  
    stock_code =  models.CharField('Stock Code',max_length = 50)
    comments = models.TextField('Comments', default = '' ,blank = True)

 

Default Date and Time

date = models.DateTimeField(auto_now_add=True, blank=True)
date = models.DateTimeField(default=datetime.now, blank=True)

 

 

Model with function and return String

lass Portfolio_m(models.Model):
    def get_pfno():
        import random
        return str(random.randint(10000,99999))

    pf_no = models.CharField('Portfolio Desc',max_length = 50,default = get_pfno)
    pf_name = models.CharField('Portfolio Desc',max_length = 50)
    pf_email = models.CharField('Email Address',max_length = 50)
    pf_user = models.CharField('User ID',max_length = 50,default = 'demo')

    def __str__(self):
        #return self.id
        return self.pf_no + "_" + self.pf_name


Model with Choices

RESULT_QTR = (
        ('Jun-2018','Jun-2018'),
        ('Sep-2018','Sep-2018'),
        )

result_qtr = models.CharField(max_length=10,default = 'Jun-2019',choices = RESULT_QTR)


Other Model Definition

Foreign Key
stockcode = models.ForeignKey(StockList_m, on_delete=models.CASCADE,verbose_name='Stock Code')

Null Blank
zadhocMargin = models.CharField(max_length = 100,default='',null=True,blank=True)



Unique Togeather

class stock_result_m(models.Model):
    RESULT_QTR = (
        ('Jun-2018','Jun-2018'),
        ('Sep-2018','Sep-2018'),
        ('Dec-2018','Dec-2018'),
        )
    #portfolio = models.ForeignKey(Portfolio_m, on_delete=models.CASCADE,verbose_name='portfolio name')
    stockcode = models.ForeignKey(StockList_m, on_delete=models.CASCADE,verbose_name='Stock Code')
    result_date = models.DateField()
    result_qtr = models.CharField(max_length=10,default = 'Jun-2019',choices = RESULT_QTR)
    revenue = models.DecimalField('Revenue',max_digits=10, decimal_places=2, default = 0  )
    depriciation = models.DecimalField('Depriciation',max_digits=10, decimal_places=2, default = 0  )
    ebit_o = models.DecimalField('Ebit Operations',max_digits=10, decimal_places=2, default = 0  )
    ebita_o = models.DecimalField('EBITA Operations',max_digits=10, decimal_places=2, default = 0  )
    other_income = models.DecimalField('Other Income',max_digits=10, decimal_places=2, default = 0  )
    ebit = models.DecimalField('EBIT',max_digits=10, decimal_places=2, default = 0  )
    ebita = models.DecimalField('EBITA',max_digits=10, decimal_places=2, default = 0  )
    profit = models.DecimalField('Profit',max_digits=10, decimal_places=2, default = 0  )
    ebita_per = models.DecimalField('EBITA %',max_digits=10, decimal_places=2, default = 0  )
    ebit_per = models.DecimalField('EBIT %',max_digits=10, decimal_places=2, default = 0  )
    margin_per = models.DecimalField('Margin %',max_digits=10, decimal_places=2, default = 0  )
    shares = models.DecimalField('Share Capital',max_digits=10, decimal_places=2, default = 0  )
    eps_qtr = models.DecimalField('EPS Qtr',max_digits=10, decimal_places=2, default = 0  )
    eps_ttm = models.DecimalField('EPS TTM',max_digits=10, decimal_places=2, default = 0  )
    pe_ratio = models.DecimalField('P/E Ratio',max_digits=10, decimal_places=2, default = 0  )
    pe_ind = models.DecimalField('Industry P/E',max_digits=10, decimal_places=2, default = 0  )
    divident = models.DecimalField('Divident Yield',max_digits=10, decimal_places=2, default = 0  )
    cmp = models.DecimalField('CMP',max_digits=10, decimal_places=2, default = 0  )
    result_analysis = models.TextField(default = '')
    pf_user = models.CharField('User ID',max_length = 50,default = 'demo')
    class Meta:
        unique_together = (('stockcode', 'result_qtr' ,'pf_user' ),)

 

            Related
Django Models