Django редактировать владелец Object

<

Я пробовал с чем-то вроде этого, что, конечно же, не работает

def ChangeField(request, title_id):
    user_title = Field.objects.filter(id=title_id,
                                      user=request.user)
    if user_title:
        user_title.user = 'Admin'
        user_title.save()
    else:
        return redirect('https://example.com')
    return HttpResponseRedirect('/another')

Когда пользователь объекта ID 11, например, вызывает URL /11, я хочу изменить владельца объекта 11 на суперпользователя, в моем случае суперпользователь называется 'Admin'

Файл моделей

class Field(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        default=None,
        null=True,
        on_delete=models.CASCADE,
    )
    ....

Попытка user_title.user = request.user

Вы можете использовать get вместо filter и установить superuser как

from django.core.exceptions import ObjectDoesNotExist
from django.contrib.auth.models import User

def ChangeField(request, title_id):
    try:
        user_title = Field.objects.get(id=title_id,
                                      user=request.user)
         superuser = User.objects.get(is_superuser=True) # I assumed here one superuser you can get which superuser with your own condition here
         user_title.user = superuser
         user_title.save()
         return HttpResponseRedirect('/another') # return response after successful 
    except ObjectDoesNotExist:
        return redirect('https://example.com') # return response if object does not exists
Вернуться на верх