python - 在 Django 中创建模型实例时如何获取模型的长度

标签 python django

我正在创建一个名为 Project 的模型类,我想使用 Project 模型的长度。

我的意思是当我创建一个项目实例时,如果有 10 个实例,我想将订单字段的默认值设置为项目模型的长度。

如何获取模型的当前长度?

这是我的项目模型的 models.py 代码

models.py

class Project(models.Model):
    title=models.CharField(max_length=50)
    order=models.IntegerField(default=0)
    isPublic=models.BooleanField(default=True)
    content=models.TextField()
    detailUrl=models.CharField(max_length=200)
    # where to upload
    image = models.ImageField(upload_to = createFileName, help_text="The recommended size of the images are 1x1")
    time=models.DateTimeField(default=timezone.now)
    view=models.IntegerField(default=0)
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # self.order=models.IntegerField(default=0) # this works fine but this isn't what I want
        self.order=models.IntegerField(default=len(Project.objects.all())) 
        # this is what I want but it gives me no response without emitting errors.

最佳答案

default=... parameter [Django-doc]可以是您用来确定默认值的可调用对象。例如:

def <b>default_project_order</b>():
    return Project._base_manager.count()

class Project(models.Model):
    title=models.CharField(max_length=50)
    order=models.IntegerField(default=<b>default_project_order</b>)
    isPublic=models.BooleanField(default=True)
    content=models.TextField()
    detailUrl=models.CharField(max_length=200)
    # where to upload
    image = models.ImageField(upload_to = createFileName, help_text="The recommended size of the images are 1x1")
    time=models.DateTimeField(default=timezone.now)
    view=models.IntegerField(default=0)

关于python - 在 Django 中创建模型实例时如何获取模型的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57219783/

相关文章:

python - 如何在 plotly express 中更改散点矩阵中的轴限制?

django - NoReverseMatch(模板渲染时出错)

Django 使用数据库中的字段预填充表单

python - 我想将数据框中的时间戳更改为日期时间

python - Django 表格 : need more than 1 value to unpack

python - 使用 django 2 添加类别的 url

python - 卡在 Django 中设置 CSS 静态文件中

python-为排序的numpy矩阵中第1列的每个值选择第2列的前k个元素

python - 动画后 matplotlib 退出

python - 在 Python CGI 中打印 HTML