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