我需要一个没有主键的表(在Django中它是自动创建的)。所以我的问题是:我可以创建没有ID /主键的模型吗?
我正在使用Django 1.7。
答案 0 :(得分:25)
您可以创建没有自动递增键的模型,但无法创建没有主键的模型。
如果Django发现您已明确设置
Field.primary_key
,则不会添加自动ID列。每个模型只需要一个字段即可
primary_key=True
(显式声明或自动添加)。
答案 1 :(得分:7)
每个模型只需要一个字段即可使primary_key = True(显式声明或自动添加)。
答案 2 :(得分:4)
我找到了解决方案。
由于django需要主键(它是复合键或单字段ID)所以,我试图在其复合键组合的每个字段中设置primary_key = True,并在Meta中添加这些字段并在unique_together中添加组< / p>
class ReportPvUv(models.Model):
report_id = models.ForeignKey(Reports, primary_key=True)
rdate = models.DateField(primary_key=True)
fdate = models.DateTimeField(primary_key=True)
ga_pv = models.BigIntegerField()
ga_uv = models.BigIntegerField()
ur_pv = models.BigIntegerField()
ur_uv = models.BigIntegerField()
da_pv = models.BigIntegerField()
da_uv = models.BigIntegerField()
class Meta:
db_table = 'report_pv_uv'
unique_together = ('report_id', 'rdate', 'fdate')
当我运行makemigrations时,它的迁移脚本中没有ID字段:D
谢谢大家