Как в форме 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()
forms.fields.Field.disabled
- person djvg   schedule 06.10.2020