Dalam bentuk Django, bagaimana cara membuat bidang hanya baca (atau dinonaktifkan)?
Ketika formulir sedang digunakan untuk membuat entri baru, semua bidang harus diaktifkan - tetapi ketika catatan dalam mode pembaruan, beberapa bidang harus hanya-baca.
Misalnya, saat membuat Item
model baru , semua bidang harus dapat diedit, tetapi saat memperbarui catatan, apakah ada cara untuk menonaktifkan sku
bidang sehingga terlihat, tetapi tidak dapat diedit?
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
Bisakah kelas ItemForm
digunakan kembali? Perubahan apa yang akan diperlukan di kelas model ItemForm
atau Item
? Apakah saya perlu menulis kelas lain, " ItemUpdateForm
", untuk memperbarui item?
def update_item_view(request):
if request.method == 'POST':
form = ItemUpdateForm(request.POST)
# Validate and save
else:
form = ItemUpdateForm()