我正在学习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
我想要做的是在class Data
中,我想将info
值设置为borrower_name
和lender_name
的组合......
例如:
borrower_name= "SHUBHANK"
lender_name= "SAMEER"
那么info
的值应该是
来自SAMEER的SHUBHANK
但是我把代码写成:
class Data(models.Model):
...
...
info= borrower_name + " from " + lender_name
...
...
...
def __Unicode__(self):
return self.info
错误是这样的:
TypeError:+:' ForeignKey'不支持的操作数类型和' unicode'
帮我摆脱这个! 在此先感谢!
答案 0 :(得分:1)
使info
成为属性或方法
@property
def info(self):
return "{} from {}".format(self.borrower_name, self.lender_name)
您将无法在任何查询中使用它,但从您展示它的方式来看,我认为您无论如何都不需要。