2016-07-15 210 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有无效的语法... 非常感谢! –