首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在自定义(非管理) Django视图中编辑对象时未被选中的多到多字段中的值。

在自定义(非管理) Django视图中编辑对象时未被选中的多到多字段中的值。
EN

Stack Overflow用户
提问于 2011-09-06 07:40:03
回答 2查看 1.6K关注 0票数 2

我们有一个django模型,包含了一个多到多的领域。我们使用相同的表单来添加/编辑对象。当加载了一个用于编辑的现有对象时,所有字段都有与它们关联的值,除了多到多字段(没有选择 MultipleSelectBox Widget )

是否有特殊方法将值绑定到多到多字段,以便在表单加载对象以进行编辑时,字段的当前值出现在MultipleSelectBox Widget中。

我试着阅读用户在SO上提出的类似问题,但是找不到我的查询的答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-08 08:26:36

试着这么做!这是我的例子,向你展示你是如何做到的:

代码语言:javascript
运行
复制
class FirstModel(models.Model):
    title = models.CharField(max_length = 100, unique = True)

class SecondModel(models.Model):
    name = models.CharField(max_length = 100, unique = True)
    first_model = models.ManyToManyField(FirstModel)

class MyForm(forms.Form):
    name = forms.CharField(max_length = 100, required = True)
    first_model = forms.ChoiceField(widget = forms.MultipleSelect)

将其保存在添加函数中后,要在编辑函数中编辑它,请执行以下操作:

代码语言:javascript
运行
复制
def edit(request):
    my_model = MyModel.objects.filter(name = 'You Unique Name').get()
    first_model = my_model.first_model.all()
    my_form = MyForm(initial = {'first_model': first_model})

就这样:D

票数 0
EN

Stack Overflow用户

发布于 2013-04-05 01:54:29

也有同样的问题,是由commit=False引起的。修复它的方法是使用save_m2m()

代码语言:javascript
运行
复制
# Create a form instance with POST data.
f = AuthorForm(request.POST)
# Create, but don't save the new author instance.
new_author = f.save(commit=False)
# Modify the author in some way.
new_author.some_field = 'some_value'
# Save the new instance.
new_author.save()
# Now, save the many-to-many data for the form.
f.save_m2m()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7316476

复制
相关文章

相似问题

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