可能是一个新手问题,所以请忍受。
我有一个Django表单,可以编辑模型的特定实例。我正在使用Modelforms。我可以编辑实例,但是看不到要编辑的实例的内容。
我现在正在使用视频教程来学习django,并在该教程中将instance = instance添加到ModelForm实例,然后使用form.as_p在输入框中填充值。
在我要编辑url的情况下,我的输入字段为空白。但是,无论我以新的空白形式写的内容都会更新为该对象。这里可能出了什么问题?我在这里停留了4天,所以这个问题是一个非常绝望的问题:)
我的表单类:
from django import forms
from .models import Entry
class EntryForm(forms.ModelForm):
class Meta:
model = Entry
fields = ['name','type', 'date', 'description']
我的模特:
from django.db import models
class Entry(models.Model):
name = models.CharField(max_length=200)
type = models.CharField(max_length= 200)
date = models.DateTimeField()
description = models.TextField()
我的视图如下:
def update(request,pk):
instance = get_object_or_404(Entry,pk=pk)
if request.method == 'POST':
form = EntryForm(request.POST or None,instance=instance )
if form.is_valid():
instance =form.save(commit=False)
instance.save()
return HttpResponseRedirect('/')
else:
form = EntryForm()
return render(request, "form.html", {"name":instance.name,'instance':instance,'form': form})
表单模板:
<form method="POST">
{% csrf_token %}
{{form.as_p}}
<button class="btn btn-success" type='submit'>Submit</button>
</form>
答案 0 :(得分:1)
您没有通过第二种情况的实例。将您的.linkhover
更新为此。
views.py