Reputation: 141
I have a form / view that allows the user to register as many languages as he wants. Now I am trying to extract all languages that my logged in user has registered and allow him to change each of the fields at the same time, same page, same view ... How can I do this? Does anyone have any ideas?
For exemple:
registered rows
ID User Language
1 A english
2 A italian
-->
updated rows
ID User Language
1 A Portuguese
2 A Mandarin
I was trying this way, but I need to pass id by id:
def MyUpdateView(request, item):
index = get_object_or_404(MyModel, pk=item)
temp = MyMode.objects.filter(usuario=request.user).values()
if request.method == 'GET':
formset = FormFormset(request.GET or None, prefix='idiomas')
elif request.method == 'POST':
formset = FormFormset(request.POST, prefix='idiomas')
if formset.is_valid():
for form in formset:
language = form.cleaned_data.get('language')
level = form.cleaned_data.get('level')
if language and level:
MyMode.objects.filter(usuario=request.user, id=item).update(language=language, level=level)
return render(request, 'somepage.html', {
'formset': formset,
'temp': temp,
})
Upvotes: 0
Views: 134
Reputation: 334
You can use two options. I am using the posts example.
update all title with same value Post.objects.all().update(title="title")
update title with different values
posts = Post.objects.all()
for post in posts.iterator():
# Use your condition to set title
post.title = "your title"
# Save all objects in 1 query
Post.objects.bulk_update(posts, ['title'])
Upvotes: 1