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()