0

我想创建一个管道实例并一起创建相应的输入文件。我的模型我有这样的结构。

class Pipeline(models.Model):
    input_file = models.OneToOneField(
                   'InputFile', 
                   on_delete=models.CASCADE, 
                   null=False, 
                   parent_link=True
                 )


class InputFile(models.Model):
   pipeline = models.OneToOneField(
                  'Pipeline', 
                  on_delete=models.CASCADE, 
                  null=False,  
                  parent_link=False
              )

我尝试了不同的组合parent_link=True/False,但没有任何效果。但是,只有当我在parent_link=True所有地方都设置了两个实例时,才能再次删除它们。

我的admin.py样子:

class InputFileAdmin(admin.StackedInline):
    model = InputFile

class PipelineAdmin(admin.ModelAdmin):
    inlines = [Inputfile]

admin.site.register(Pipeline, PipelineAdmin)

无论组合如何,在创建或删除过程中我总是会出错。

4

1 回答 1

0

我的问题是on_delete争论。在删除时,框架现在没有先删除什么。

这现在有效:

class Pipeline(models.Model):
    input_file = models.OneToOneField(
                   'InputFile', 
                   on_delete=models.SET_DEFAULT, 
                   null=True,
                   default='', 
                   parent_link=True
                 )


class InputFile(models.Model):
   pipeline = models.OneToOneField(
                  'Pipeline', 
                  on_delete=models.CASCADE, 
                  null=True,  
                  parent_link=False
              )
于 2021-04-16T18:10:39.580 回答