如何解决Django3:如何设置与内联管理员正确配合使用的 OneToOneField?
我想创建一个管道实例并一起创建相应的输入文件。我的模型有这样的结构。
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',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)
无论是哪种组合,在创建或删除过程中我总是会出错。
解决方法
我的问题是 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,parent_link=False
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。