【发布时间】:2019-08-11 14:09:04
【问题描述】:
我正在尝试从数据库中预填充表单中的字段。 我有一个 html 页面,并且有一个表格,我将在其中单击链接,该链接将呈现带有从数据库填充的值的 html 表单。
但问题是:我无法预填充 HTML 表单字段。 以下是我的代码,我无法获得输出。
表格中的html代码
<td>{{ info.university_code }}</td>
<td>{{ info.avg_grescore }}</td>
<td>{{ info.avg_english_score }}</td>
<td>{{ info.avg_undergradcgpa }} CGPA</td>
<td>{{ info.avg_workex_months }} Months</td>
<td>{{ info.avg_research_skills }}%</td>
<td>{{ info.avg_acceptancepercentage }}</td>
<td><a href="{% url 'editSummary' univ_code=info.university_code %}"
Views.py(这里我所有的逻辑都存在,但它不起作用并给我一个错误)
def editSummary(request,univ_code):
if request.method == "POST":
form = UniversitySummaryForm(request.POST or None, instance =
uiversity)
if form.is_valid():
form.save()
return redirect('/AdminHome')
else:
form = UniversityInfoForm()
form.fields["university_code"].queryset =UniversityNames.objects.filter(university_code=request.university_code)
template_vars = RequestContext(request, {
"form": form,
"university_code": request.university_code
})
return render_to_response(
"PredictiveAcceptance/AdminUniversitySummary.html",
template_vars)
Models.py(用于数据库字段)
class UniversitySummaries(models.Model):
university_code = models.ForeignKey('UniversityNames',
models.DO_NOTHING, db_column='university_code', primary_key=True)
avg_grescore = models.IntegerField()
avg_english_score = models.IntegerField()
avg_undergradcgpa = models.IntegerField()
avg_workex_months = models.IntegerField()
avg_research_skills = models.IntegerField()
avg_acceptancepercentage = models.IntegerField()
created_on = models.DateTimeField(auto_now_add = True)
Forms.py 文件
class UniversitySummaryForm(forms.ModelForm):
class Meta:
model = UniversitySummaries
fields = ('university_code', 'avg_grescore',
'avg_english_score', 'avg_undergradcgpa', 'avg_workex_months',
'avg_research_skills', 'avg_acceptancepercentage')
urls.py
urlpatterns = [
url(r'^AdminHome/$', AdminSiteViews.home, name='home'),
url(r'^AdminListOfUniversity/$', AdminSiteViews.list, name='list'),
url(r'^AdminUniversitySummary/$', AdminSiteViews.summary, name='summary'),
url(r'^editSummary/<univ_code>/$', AdminSiteViews.editSummary, name='editSummary'),
]
【问题讨论】:
-
请将完整的错误信息添加到您的问题中。它表示 URL 解析器无法建立链接(可能是您的模板中的代码
url 'editSummary' univ_code=info.university_code,但需要错误消息来确定它)。 -
如果您收到
NoReverseMatch错误,那么您需要显示完整的错误,以及包含editSummary的urls.py。 -
请注意
render_to_response已过时,您应该改用render(request, template, {...})。如果你运行的是旧版本的 Django,你真的应该升级到最新版本或最新的 LTS 1.11x。 -
请帮助我更新错误问题。 @Alasdair
-
请检查@Risadinha