Django模型:将默认的IntegerField设置为实例数

时间:2018-03-06 12:48:44

标签: python django-models

我想将Achievement模型的“order”IntegerField设置为Achievement中当前的对象计数。订单字段用于订购成就,用户可以更改它。现在我默认为1。

class Achievement(models.Model):
    title = models.CharField(max_length=50, blank=True)
    description = models.TextField()
    order = models.IntegerField(default=1)   #Get the number of achievement objects
    class Meta:
        db_table = 'achievement'
        ordering = ['order', 'id']

例如,如果我的数据库中已经有一个成就,无论顺序如何,默认情况下下一个应该得到order = 2。

1 个答案:

答案 0 :(得分:0)

据我所知,您希望1整数字段的默认值为order,并使用Achievment的每个条目递增它(与{{1}的功能相同1}}),但也允许用户更改它。

为此,您可以使用Django' AutoField

  

id根据可用ID自动递增。您通常不需要直接使用它;如果您没有另外指定,主键字段将自动添加到您的模型中。

像这样:

IntegerField