【问题标题】:django many to many save admindjango 多对多保存管理员
【发布时间】:2015-12-17 19:33:06
【问题描述】:

我有一个这样的模型:

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

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

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

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

【问题讨论】:

标签: python django admin


【解决方案1】:

根据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)

【讨论】:

  • 我试过了,但是类型没有被添加到 obj 中。 MyModel 正在保存,但未添加类型..
  • 嗨@aryan,我已经更新了答案。请检查它是否适合您:)
  • 谢谢它的工作,我已经做到了..但感谢您的努力..我也完成了与您相同的过程
猜你喜欢
  • 2014-09-01
  • 1970-01-01
  • 2011-12-24
  • 2013-05-29
  • 1970-01-01
  • 2017-03-11
  • 2011-06-26
  • 1970-01-01
  • 2019-07-09
相关资源
最近更新 更多