我有一个Django 4表单,其中包含一些让用户选择值的部件:
from django import forms
from .models import MyModel
from bootstrap_datepicker_plus.widgets import DatePickerInput
class FooForm(forms.ModelForm):
# 一些其他代码
class Meta:
model = MyModel
fields = [
"user_id",
"created_at",
"some_other_field",
]
widgets = {
"user_id": forms.NumberInput(),
"created_at": DatePickerInput(),
"some_other_field": forms.NumberInput(),
}
我在views.py
文件中的多个函数中实例化了这个表单:
my_form_instance = FooForm(
data=data,
user=request.user,
)
我有一个名为create_or_edit_foo()
的函数,用于创建新记录或编辑现有记录。还有一个名为delete_foo()
的函数来删除记录。在删除函数中(由特定端点/foo/12/delete
使用),我希望以只读模式显示该表单。
我该如何实现这一点呢?
我知道我可以在每个部件的widgets
中添加attrs={'readonly': True,}
来使其不可编辑。但这样一来,这种方式也会影响到我的视图中用于创建或编辑功能的表单实例。
我正在Ubuntu 22.04上使用Python 3.10.6和Django 4.2。