Як зробити форму "Джанго", як зробити поле лише для читання (або вимкнено)?
Коли форма використовується для створення нового запису, усі поля повинні бути включені - але коли запис знаходиться в режимі оновлення, деякі поля потрібно лише для читання.
Наприклад, при створенні нової 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()