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 Itemmodel baru , semua bidang harus dapat diedit, tetapi saat memperbarui catatan, apakah ada cara untuk menonaktifkan skubidang 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 ItemFormdigunakan kembali? Perubahan apa yang akan diperlukan di kelas model ItemFormatau 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()