在Django中尝试将两个模型链接在一起:挑战

在Django中尝试将两个模型链接在一起:挑战,django,django-models,Django,Django Models,尝试通过链接两个模型或以不产生错误的方式组合这两个模型来工作 我有一个模型,它只是一个文件字段,接受上传的文件 class FitFiles(models.Model): fitfiles=models.FileField(upload_to='PMC/fitfiles' null=False) 我有另一个模型,在相同的上传功能下填充,基本上根据上传的文件运行一些计算 class RideSum(models.Model): fitfiles = models.OneToOn

尝试通过链接两个模型或以不产生错误的方式组合这两个模型来工作

我有一个模型,它只是一个文件字段,接受上传的文件

class FitFiles(models.Model):

    fitfiles=models.FileField(upload_to='PMC/fitfiles' null=False)
我有另一个模型,在相同的上传功能下填充,基本上根据上传的文件运行一些计算

class RideSum(models.Model):
    fitfiles = models.OneToOneField(FitFiles, on_delete=models.CASCADE)
    ftp = models.IntegerField()
    norm_power = models.IntegerField()
    intensity = models.FloatField()
    tss = models.FloatField()
    date = models.DateField()
上述方法的问题是,我不断得到一个错误,即找不到fitfiles\u id

我尝试将所有内容放在一个模型下,但问题是filefield'fitfiles'返回空值,并且我得到一个NOTNULL约束错误。我很想知道如何处理这件事

目前,我可以将这两个模型完全分离(即,不尝试将两者链接),但对于DetailView,我需要确保它们始终具有相同的主键,如果出于任何原因主键在这些模型之间不对齐,则DetailView会变成一堆不同的信息


很高兴发布并澄清

非空约束是一种列约束,可确保存储在列中的值不为空。一列只能包含一个非空约束,该约束指定了列不得包含任何空值的规则。换句话说,如果您更新或在NOTNULL列中插入NULL,程序将显示错误。

明白。我很好奇,是否有人对如何使其不为null提出了建议,比如为该列输入默认值。值本身并不重要,只要它会返回一些东西一般来说,在迁移过程中,它会询问您是否希望用默认值替换该值(我相信选项是2)。如果已经完成了迁移,则可以在多阶段迁移过程中重做。例如,在出现此问题的字段中添加
Null=True
,迁移,然后将其更改为
Null=False
。然后在第二次迁移期间,您应该再次获得此选项。我确信还有其他的方法,我不确定这是最好的方法,但听起来它会起作用。对不起,我不是故意打断自己,我是想说,不幸的是,双重迁移不起作用,得到了以下结果:(psycopg2.errors.NotNullViolation)列“fitfiles”中的null值违反非空约束详细信息:失败的行包含(1,null,295228,0.77,28.72020-02-15)。其中null是它似乎分配给文件上载的内容。可能只需要按照我原来的计划工作,或者试着想出另一种方法将一个模型引用到另一个模型,以确保detailview保持一致