您好,我正在尝试实现一个编辑页面,它接受对象的id并加载其所有原始值&&启用编辑/更新。e.g
对于文本类型,我使用
<label>Field1:</label>
<input type="text" id="id_field1" value='{{ objectInstance.filed1}}' name="field1"/>对于Textares
<label>Field2:</label>
<textarea id="id_field2" name="field2">
{{ objectInstance.field2}} 它们在加载实例的原始数据和允许编辑方面都工作得很好。但是对于日期字段,我找不到如何加载它。我正在尝试像这样的东西
<label>Deadline:</label>
<input type="date" id="id_deadline" name="deadline" value={{objectInstance.deadline}}>(截止日期为日期数据类型,例如2013-6-4)
有人能帮助解决这个问题吗?非常感谢。
发布于 2013-06-04 12:28:24
您可以使用基于UpdateView泛型类的视图来简化此过程。一个类似的问题是answered before。
解决这个问题的另一种方法是使用ModelForm,并使用实例预加载它。这实际上就是UpdateView所做的,但是如果你不想使用基于类的视图,下面是另一种选择:
在你的forms.py中
from django import forms
from someapp.models import SomeModel
class SomeModelForm(forms.ModelForm):
class Meta:
model = SomeModel在你的views.py中
def someview(request):
obj = SomeModel.objects.get(pk=1) # Fetch the object to be edited
form = SomeModelForm(instance=obj) # Load the form with the object's data
return render(request, 'edit.html', {'form': form})在edit.html中
<form method="POST">
{% csrf_token $}
{{ form }}
<input type="submit">
</form>这将自动创建表单,并使用模型中的数据填充表单。您仍然需要编写逻辑来更新视图中的记录。
https://stackoverflow.com/questions/16909376
复制相似问题