我正在尝试解决问题,希望对您有所帮助
有2种型号:
def BigBox(models.Model):
title = textfield
date = datetimefield
author = foreignkey(user)
# other fields etc.
def SmallBox(models.Model):
title = textfield
contained_in = foreignkey(BigBox)
# little box that can be only in big box
我有一种方法可以在BigBox adminModel的readonly_fields中查看SmallBox,但目前无法进行编辑或创建新的
。我需要使(以下内容全部适用于admin.ModelAdmin):
编辑/创建BigBox时,需要能够在内部创建新的相关SmallBox。
这意味着每个BigBox始终至少包含一个SmallBox,并且每个SmallBox始终包含任何SmallBox。
需要指定在BigBox内部创建SmallBox的方式。
答案 0 :(得分:0)
我认为实现此目标的最佳方法是使用信号。
post_save()信号明确。 在声明两个模型类之后,定义一个方法来检查 BigBox 集是否包含 SmallBox 实例。如果不是,则创建 SmallBox 的实例并附加到 BigBox 实例。
参考:https://docs.djangoproject.com/en/dev/ref/signals/#post-save
示例:https://simpleisbetterthancomplex.com/tutorial/2016/07/28/how-to-create-django-signals.html
以上示例显示了如何使用 post_save.connect()或使用 @receiver(post_save,sender = BigBox)装饰器来定义函数并将其附加到模型在功能上
答案 1 :(得分:0)
我通过更好的搜索找到了解决方案。
这称为“内联” https://docs.djangoproject.com/en/2.0/intro/tutorial07/#adding-related-objects