Django表单:使用视图中定义的变量作为表单中的占位符



我正在学习Django,并试图在视图中引用def中的一个变量作为占位符。在下面的代码中,"Replace this"应该显示"def editpage(request,topic("中定义的"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}"
})

我试图将"替换此"替换为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变量扩展类参数。

类似:

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}"
})

最新更新