python - django多对多保存管理

标签 python django admin

我有一个像这样的模型:

class MyModel(models.Model):
    name = models.CharField(max_length=100)
    type = models.ManyToManyField(Type, blank=True)

我正在从管理员这里添加 MyModel。

我想要的是,如果保存时未提供类型,那么我希望类型为默认类型,如 Teacher

类型Teacher尚未创建。如果未提供类型,我想创建该类型并在未提供类型时分配它

最佳答案

根据documentation的示例,您可以像这样覆盖 save_model:

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    def save_related(self, request, form, formsets, change):
        if not form.cleaned_data['type']:
            type, created = Type.objects.get_or_create(name="Teacher")
            form.cleaned_data['type'] = [type]
        form.save_m2m()
        for formset in formsets:
             self.save_formset(request, form, formset, change=change)

关于python - django多对多保存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689486/

相关文章:

linux - 如何在树莓派的主目录中创建文件夹?

javascript - 在使用 Express 的 Node.js 中,如何实现用户登录和管理员登录?我希望具有管理员权限的用户可以访问所有路由

python - 在 Python 中迭代列表并向对象添加属性

python - Python 3.6 中的通用 NamedTuple

django - 将 'yesterday' 字段添加到 Django 管理日期列表过滤器

django - 在 Django 数据库中存储每周/每天的日程安排

django - 在 Django 中通过外键进行查询

python - 如何使用 Python 将数据上传到 Tableau Server

python - 我可以使用 Node.js 作为后端并使用 Python 来进行 AI 计算吗?

python - modelformset_factory 和 csrf token 丢失或不正确