Home > database >  render() got an unexpected keyword argument 'board_id'
render() got an unexpected keyword argument 'board_id'

Time:01-16

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'

CodePudding user response:

Take a look into the documentation of render function (https://docs.djangoproject.com/en/4.0/topics/http/shortcuts/#render)

This should work:

render(request, 'board_topics', dict(board_id=board.pk))

CodePudding user response:

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})
  •  Tags:  
  • Related