Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-models-访问类中字段的值 类标记(models.Model): ''带有标签的项目将具有相应的折扣百分比'' 标记\折扣\百分比=models.IntegerField() 标语(默认值="立即购买{}额外折扣"。格式(标记折扣百分比。获取准备值(值)) 标语=models.CharField(最大长度=200,默认值=标语\u默认值) 定义(自我): 回归自我口号_Python_Django_Model_Field - Fatal编程技术网

Python Django-models-访问类中字段的值 类标记(models.Model): ''带有标签的项目将具有相应的折扣百分比'' 标记\折扣\百分比=models.IntegerField() 标语(默认值="立即购买{}额外折扣"。格式(标记折扣百分比。获取准备值(值)) 标语=models.CharField(最大长度=200,默认值=标语\u默认值) 定义(自我): 回归自我口号

Python Django-models-访问类中字段的值 类标记(models.Model): ''带有标签的项目将具有相应的折扣百分比'' 标记\折扣\百分比=models.IntegerField() 标语(默认值="立即购买{}额外折扣"。格式(标记折扣百分比。获取准备值(值)) 标语=models.CharField(最大长度=200,默认值=标语\u默认值) 定义(自我): 回归自我口号,python,django,model,field,Python,Django,Model,Field,此代码引发异常: 标语_default='立即购买额外的{}% 走开。格式(标记\折扣\百分比。获取\准备\值(值))名称错误: 未定义名称“值” 呃 问题1:如何访问该类中字段自身的值?还是有更好的方法来设置CharField的默认值? tag\u折扣\u百分比本身是,但我想要这个值 问题2:我可以为整型字段设置一个数字限制吗?我只找到了max_length,它会提示一条警告:“max_length将被忽略”…尝试回答问题1: 我不确定这是否是最好的答案,但它解决了问题。似乎不可能(或者我根

此代码引发异常:

标语_default='立即购买额外的{}% 走开。格式(标记\折扣\百分比。获取\准备\值(值))名称错误: 未定义名称“值”

问题1:如何访问该类中字段自身的值?还是有更好的方法来设置CharField的默认值?
tag\u折扣\u百分比
本身是
,但我想要这个值


问题2:我可以为
整型字段设置一个数字限制吗?我只找到了
max_length
,它会提示一条警告:“max_length将被忽略”…尝试回答问题1: 我不确定这是否是最好的答案,但它解决了问题。似乎不可能(或者我根本不知道如何)访问类中某个字段的值,所以我想出了其他办法:

类标记(models.Model):
''带有标签的项目将具有相应的折扣百分比''
标记\折扣\百分比=models.IntegerField(默认值=0)
标语=models.CharField(最大长度=200,空白=True)
定义(自我):
如果self.lampaign else self.lampaign\u默认,则返回self.lampaign
@财产
默认设置(自身):
return“立即购买,享受额外的{}%折扣!”。格式(self.tag\u折扣\u百分比)

如果有人能回答问题2,我将不胜感激。干杯~

回答您的第二个问题-您所说的“数字限制”并不明显。如果您希望防止值超出定义的范围,则可以使用:

否则,如果要限制小数位数,则应使用字段而不是整数

另外,在评论第一个问题时,您无法设置与另一个字段的值相关的默认值,因为在保存实例(记录)时,字段值尚未设置
default
agrument可以是可调用的,但不引用它所用于的对象。您可以考虑使用信号来根据另一个字段设置“默认值”字段值。

from django.core.validators import MaxValueValidator, MinValueValidator

class Tag(models.Model):
    '''Items have tag will have according discount percentage'''
    tag_discount_percentage = models.IntegerField(default=0, validators=[MinValueValidator(1), MaxValueValidator(100)])