Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.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中相同模型中的其他属性_Python_Django_Properties_Model - Fatal编程技术网

Python 如何调用/引用django中相同模型中的其他属性

Python 如何调用/引用django中相同模型中的其他属性,python,django,properties,model,Python,Django,Properties,Model,我正在创建一个web应用程序,用于创建机器或设备的提案/报价。我有一个具有以下属性的QuotationItem模型: 在my models.py中: class QuotationItem(models.Model): product = models.Charfield(max_length=30) quantity = models.PositiveIntegerField(default=1) description = models.CharField(max_l

我正在创建一个web应用程序,用于创建机器或设备的提案/报价。我有一个具有以下属性的
QuotationItem
模型:

在my models.py中:

class QuotationItem(models.Model):
    product = models.Charfield(max_length=30)
    quantity = models.PositiveIntegerField(default=1)
    description = models.CharField(max_length=200, null=True)
    line_number = models.PositiveIntegerField()
    tagging = models.CharField(max_length=50)
现在,我想连接两个属性(线号和标记)。例如:

line_number = 1,
tagging = "Equipment - 1"

line_number = 2,
tagging = "Equipment - 2"
简言之,我想将
tagging
属性设置为默认值
f“Equipment-{line\u number}”


我希望
请求的那部分。数据
行号
,因此,如果没有提供,我希望
标记
具有上述默认值。在模型中是否有这样做的方法?还是应该在视图中处理此问题?

字段定义中使用的默认值(即使在使用可调用项时)无权访问实例。您必须覆盖
save
或连接到
pre_save
信号:

class QuotationItem(models.Model):
    # ...
    def save(self, *args, **kwargs):
        if not self.pk:  # initial creation
            self.tagging = f"Equipment - {self.line_number}"
        super().save(*args, **kwargs)

谢谢@schwobasegl。我实际上想要的是,如果
请求.data中没有提供任何标记,则将
self.tagging
设置为
f“设备-{self.line\u number}”
。我对你的代码做了一些小的修改,它成功了:
如果不是self.pk,也不是self.tagging:
另外,我在tagging中添加了
null=True
,因为它在创建时不接受任何值(尽管它实际上应该是
null=False