如何自动增加非主键

时间:2011-10-28 07:22:11

标签: sql django django-models

我有以下django模型:

class Message(models.Model):
    thread_id = models.IntegerField(max_length=8, blank=False)
    subject = models.CharField(max_length=256, blank=False)
    content = models.CharField(max_length=5000, blank=False)
    timestamp = models.DateTimeField(auto_now_add=True, blank=False)

我想在添加Message模型对象(来自特定视图)时自动递增thread_id,即使它不是模型的pk。有没有办法在不查询数据库的情况下查找大的thead_id并添加一个?

3 个答案:

答案 0 :(得分:3)

Thread不应该是一个单独的模型,它有自己的自动增量PK,而Message只是将一个ForeignKey保存到线程?

答案 1 :(得分:0)

在我的项目中,我使用计数。这是一些代码。

def ids():
no = Employee.objects.count()
if no == None:
    return 1
else:
    return no + 1

emp_id = models.IntegerField(('Code'), default=ids, unique=True, editable=False)

答案 2 :(得分:-8)

使用AutoField代替IntegerField