2016-07-15 217 views
1

兩個不同領域的組合我學習Django和把我自己學習一個項目,一個費用經理.... 這裏是我下面的代碼:設置默認值在Django

from __future__ import unicode_literals 
from django.core.validators import RegexValidator 

from django.db import models 

# Create your models here. 

class Person(models.Model): 
    first_name= models.CharField(max_length=15) 
    last_name= models.CharField(max_length=15) 
    email=models.EmailField(blank=True, verbose_name="E-Mail") 
    city= models.CharField(max_length=25) 
    state= models.CharField(max_length=30) 
    phone_number= models.CharField(max_length=10, validators=[RegexValidator(r'^\d{1,10}$')]) 

    def __unicode__(self): 
     return self.first_name 

class Data(models.Model): 
    borrower_name= models.ForeignKey(Person, related_name="the_borrower") 
    lender_name= models.ForeignKey(Person, related_name="the_lender") 
    info= models.CharField(max_length=1000, default="Borrower from Lender") 
    witness_name= models.ForeignKey(Person, related_name="the_witness") 
    money_lended= models.IntegerField() 
    date= models.DateField(null=True) 

    class Meta: 
     verbose_name_plural = "Data" 

    def __unicode__(self): 
     return self.info 

class Log(models.Model): 
    log= models.ForeignKey(Data) 
    status= models.CharField(max_length=15) 
    date= models.DateField(null=True) 

    def __unicode__(self): 
     return self.status 

我想要什麼做的是,在​​,我想設置info值作爲borrower_namelender_name組合...

例如:
borrower_name= "SHUBHANK"
lender_name= "SAMEER"
那麼info值應

SHUBHANK from SAMEER

,但是當我把這樣的代碼:

class Data(models.Model): 
    ... 
    ... 
    info= borrower_name + " from " + lender_name 
    ... 
    ... 
    ... 
    def __Unicode__(self): 
     return self.info 

錯誤就這樣產生了:

TypeError: unsupported operand type(s) for +: 'ForeignKey' and 'unicode'

幫我把擺脫這個! 在此先感謝!

回答

1

info屬性或方法

@property 
def info(self): 
    return "{} from {}".format(self.borrower_name, self.lender_name) 

您將無法在任何查詢的,但是從你所示的方式來使用它,我不認爲你會永遠需要無論如何。

+0

謝謝! 我在哪裏放這個片段..我把它添加到'class Data'中 它告訴我一個錯誤說:「語法無效」 錯誤發生在返回線 –

+0

@ShubhankTyagi - 你收到的確切錯誤是什麼?將它添加到類將是正確的 – Sayse

+1

-問題解決了。實際上你錯誤地寫了'rerturn'代替'return',我複製了它:p 這就是y有無效的語法... 非常感謝! –