Django - 多列主键

0 投票
1 回答
2841 浏览
提问于 2025-04-16 03:57

我想在Django中实现多列主键。

我试着用AutoSlugField()来连接我的列值(外键/日期)……

models.py :

class ProductProduction(models.Model):
    enterprise = models.ForeignKey('Enterprise')
    product = models.ForeignKey('Product')
    date = models.DateTimeField()
    count = models.IntegerField()
    slug = AutoSlugField(populate_from=
    lambda instance: instance.enterprise.username + '-' + instance.product.name + '-' + str(date))

当我传入以下参数时:

 - 'Megacorp','robot','09/10/2010',5 => slug = 'Megacorp-robot-09/10/2010'
... the next time in pass the triplet, a new value has been inserted :
 - 'Megacorp','robot','09/10/2010',10 => slug = 'Megacorp-robot-09/10/2010' 
        => same slug value => insert ????

我尝试在slug中添加primary_key=True这个参数……但是这样会创建新的实例,后面会加上“-1”、“-2”……根本没有更新任何东西……

我是不是漏掉了什么?

谢谢,

Yoan

1 个回答

0

这里是我使用的自动生成slug字段的解释。

http://packages.python.org/django-autoslug/fields.html

祝好,

Yoan

撰写回答