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