在Django表单中,如何将字段设为只读(或禁用)?
使用表单创建新条目时,应启用所有字段-但是,当记录处于更新模式时,某些字段必须是只读的。
例如,当创建一个新Item
模型时,所有字段都必须是可编辑的,但是在更新记录时,是否有一种方法可以禁用该sku
字段,使其可见但不能编辑?
class Item(models.Model):
sku = models.CharField(max_length=50)
description = models.CharField(max_length=200)
added_by = models.ForeignKey(User)
class ItemForm(ModelForm):
class Meta:
model = Item
exclude = ('added_by')
def new_item_view(request):
if request.method == 'POST':
form = ItemForm(request.POST)
# Validate and save
else:
form = ItemForm()
# Render the view
可以ItemForm
重用类吗?ItemForm
或Item
模型类需要进行哪些更改?我需要编写另一个类“ ItemUpdateForm
”来更新项目吗?
def update_item_view(request):
if request.method == 'POST':
form = ItemUpdateForm(request.POST)
# Validate and save
else:
form = ItemUpdateForm()