render() got an unexpected keyword argument 'board_id'

Viewed 45

I have this function to get items from DB according to the PK:

def new_topic(request, board_id):
    board = get_object_or_404(Board, pk = board_id)
    
    user = User.objects.first()
    if request.method == 'POST':
        form = NewTopicForm(request.POST)
        if form.is_valid():
            topic = form.save(commit=False)
            topic.board = board
            topic.created_by = user
            topic.save()

            post = Posts.objects.create(
                message = form.cleaned_data.get('message'),
                created_by = user,
                topic = topic
            )
            return render('board_topics', board_id = board.pk)
                
    else:
        form = NewTopicForm()
        
    return render(request,'new_topic.html', {'board':board, 'form':form})

But it gives this error:

render() got an unexpected keyword argument 'board_id'

2 Answers

The function render expects first parameter as request and then template name and lastly optional is context so change your first render to this:

 return render(request, 'board_topics.html', {'board_id': board.pk})
Related