【问题标题】:Django Admin Form fields don't update when change form is saved保存更改表单时,Django 管理表单字段不更新
【发布时间】:2022-01-01 10:48:12
【问题描述】:

在模型的管理表单中。在我提交表单之前。

我想编辑/添加外键模型字段,使用 Django 管理员弹出更改表单。 当我提交时,我希望字段使用在该弹出更改表单中创建/编辑的新添加数据进行更新,而无需刷新页面并丢失表单数据输入。

class Button(models.Model):
    name = models.CharField(max_length=200)
    location = models.ForeignKey(Location, on_delete=models.CASCADE)

class Location(models.Model):
    name = models.CharField(max_length=200, help_text="Start here, slug will be created from name.")
    software = models.ForeignKey(Software, on_delete=models.CASCADE)

弹窗形式:

回到仍然打开的表单,没有任何变化:

我知道如果您将对象添加到同一字段,表单可以更新:

似乎无法找到有关此主题的任何帮助。任何建议或帮助都会很棒。

也许做不到?

【问题讨论】:

    标签: django django-models django-forms django-admin


    【解决方案1】:

    尝试从模型中导入类并在models.ForeignKey()中使用它。 例如:

    from .models import Location
    
    class Button(models.Model):
        name = models.CharField(max_length=200)
        location = models.ForeignKey(Location, on_delete=models.CASCADE)
    

    您已经指定了一个字符串 Location,但它应该是类。

    【讨论】:

    • 我会尝试改变它。但我以前从未遇到过将其设置为字符串的问题。
    • 是的,没有区别。不过感谢您的建议。
    • 对不起,我可能误解了你的问题。如果你重新加载它会工作,对吧?
    • 正确,如果我在弹出窗口保存并关闭后刷新页面,它会显示在表单中。