Django / Python-同时更新多个字段

问题描述 投票:0回答:1

假设我的数据库中有这样的内容:

enter image description here

如何在一个视图中更新用户a的所有3种语言?

我正在尝试这样的事情:

def myview(request):
    temp = MyModel.objects.filter(usuario=request.user).values()

    if request.method == 'GET':
        formset = Formformset(request.GET or None, prefix='language')

    elif request.method == 'POST':
        formset = Formformset(request.POST, prefix='language')

        if formset.is_valid():
            for language in MyModel.objects.filter(usuario=request.user):
                for form in formset:
                    language = form.cleaned_data.get('language')
                    level = form.cleaned_data.get('level')
                    if language and level:
                        MyModel.objects.update(language=language, level=level)

    return render(request, 'somepage.html', {
        'formset': formset,
        'temp': temp,
    })
django django-models view model django-views
1个回答
0
投票

您可以使用两个选项。我正在使用帖子示例。

  1. 更新具有相同值Post.objects.all().update(title="title")]的所有标题>

  2. 使用不同值更新标题

  3. posts = Post.objects.all()
    for post posts.iterator():
       # Use your condition to set title
        post.title = "your title"
    # Save all objects in 1 query
    Post.objects.bulk_update(posts, ['title'])
    
© www.soinside.com 2019 - 2024. All rights reserved.