首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -与管理相关的模型编辑

Django -与管理相关的模型编辑
EN

Stack Overflow用户
提问于 2018-06-21 14:59:08
回答 2查看 680关注 0票数 0

我正试图解决一些问题,我希望你能帮助我

有两种模式:

代码语言:javascript
复制
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

我有一种方法可以查看SmallBoxes in readonly_fields of BigBox adminModel,但此时无法编辑或创建新的。

我需要(下面所写的所有内容都适用于admin.ModelAdmin):

当您编辑/创建BigBox时,需要能够在内部创建新的相关SmallBoxes。

这意味着每个BigBox总是包含至少一个SmallBox,而每个SmallBox总是包含在BigBox的任意一个中。

需要指定在SmallBoxes内部创建BigBox的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-22 09:52:58

我通过更好的搜索找到了解决方案。

这被称为“内联”https://docs.djangoproject.com/en/2.0/intro/tutorial07/#adding-related-objects

票数 1
EN

Stack Overflow用户

发布于 2018-06-21 15:35:54

我认为实现这一目标的最好方法是使用信号

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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50971705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档