[Debugging] context must be a dict rather than set. (in Django)

 I got this Error "context must be a dict rather than set" 


TypeError at /update-room/1/

context must be a dict rather than set.
Request Method:GET
Request URL:http://127.0.0.1:9090/update-room/1/
Django Version:4.0.3
Exception Type:TypeError
Exception Value:
context must be a dict rather than set.
Exception Location:C:\Users\j\Desktop\pythonwork\lib\site-packages\django\template\context.py, line 278, in make_context
Python Executable:C:\Users\j\Desktop\pythonwork\python.exe
Python Version:3.10.3
Python Path:
['C:\\Users\\j\\Desktop\\pythonwork\\Newproject',
 'C:\\Users\\j\\Desktop\\pythonwork\\python310.zip',
 'C:\\Users\\j\\Desktop\\pythonwork\\DLLs',
 'C:\\Users\\j\\Desktop\\pythonwork\\lib',
 'C:\\Users\\j\\Desktop\\pythonwork',
 'C:\\Users\\j\\Desktop\\pythonwork\\lib\\site-packages']
time:
Wed, 13 Apr 2022 02:36:18 +0000



---------- Let's go to views.py 

def home(request):
    rooms = Room.objects.all()
    context = {'rooms': rooms}
    return render(request, 'main/home.html', context)

def room(request, pk):
    room = Room.objects.get(id=pk)
    context = {'room': room}

    return render(request, 'main/room.html', context)
 

def createRoom(request):
    form = RoomForm()
    if request.method == 'POST':
        form = RoomForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home')

    context = {'form': form}
    return render(request, 'main/room_form.html', context)


def updateRoom(request, pk):
    room = Room.objects.get(id=pk)
    form = RoomForm(instance=room)

    if request. method == 'POST':
        form = RoomForm(request.POST, instance=room)
        if form.is_valid():
            form.save()
            return redirect('home')

    context = {'form: form'}
    return render(request, 'main/room_form.html', context)

I see 
context = {'form': form}

and revised
    context = {"form": form}
    return render(request, 'main/room_form.html', context)



Mostly, This kind of errors is because of colon.

and Run again


 Fixed !

Popular posts from this blog

[Python] Dictionary

[Visual Design 2/3]

[JavaScript] For loop , Function