Формы Django: Ссылка на переменную, определенную в views def как заполнитель в формах

Я использую Django и пытаюсь сослаться на 'topic', имеющуюся в def в views, как на заполнитель, на который я ссылался из url. В приведенном ниже коде 'Replace this' должен показать содержимое 'topic', как определено в 'def editpage(request, topic)', но я не могу заставить ссылку работать.

from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django import forms
from . import util

class EditPageForm(forms.Form):
    title = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Replace this', 'class': 'form-control'}))

def editpage(request, topic):  
    return render(request, "encyclopedia/editpage.html", {"form": EditPageForm(), "topic":f"{topic}"
    })

Моя попытка заключалась в замене 'Replace this' на f'{topic}', но, похоже, это не работает.

from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django import forms
from . import util

class EditPageForm(forms.Form):
    title = forms.CharField(widget=forms.TextInput(attrs={'placeholder': f'{topic}', 'class': 'form-control'}))

def editpage(request, topic):  
    return render(request, "encyclopedia/editpage.html", {"form": EditPageForm(), "topic":f"{topic}"
    })

Вместо этого я получаю ошибку, что 'topic' не определена. Заранее спасибо!

На мой взгляд, вам следует расширить параметр класса на topic переменную.

like:

class EditPageForm(forms.Form, topic):
    title = forms.CharField(widget=forms.TextInput(attrs={'placeholder': f'{topic}', 'class': 'form-control'}))

def editpage(request, topic):  
    return render(request, "encyclopedia/editpage.html", {"form": EditPageForm(topic), "topic":f"{topic}"
    })
Вернуться на верх