gpt4 book ai didi

python - 将默认值设置为 django 中两个不同字段的组合

转载 作者:太空宇宙 更新时间:2023-11-03 16:21:47 25 4
gpt4 key购买 nike

我正在学习 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的组合贷方名称...

例如:
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'

帮我摆脱这个!提前致谢!

最佳答案

使 info 成为属性或方法

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

您将无法在任何查询中使用它,但从您显示的方式来看,我认为您根本不需要这样做。

关于python - 将默认值设置为 django 中两个不同字段的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com