В форме 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()