#django #django-views #django-forms #django-templates
Вопрос:
Я пытаюсь отключить ввод поля для обновления с моего view
class FoodListView(FormListView):
form_class = forms.FoodForm
context_object_name = "foods"
def get_queryset(self):
return Food.objects.all()
def get_create_form(self):
form = super().get_create_form()
form.fields["is_active"].initial = True
form.fields["is_active"].disabled = True
return form
def get_update_form(self, obj):
form = super().get_update_form(obj)
form.fields["is_active"].disabled = True
return form
class FoodUpdateView(BaseUpdateView):
form_class = forms.FoodForm
def get_queryset(self):
return Food.objects.all()
def form_valid(self, form):
instance_form = self.form_class(self.get_object(), instance=self.get_object())
return super().form_valid(form)
Это моя форма
class FoodForm(forms.ModelForm):
class Meta:
model = Food
fields = ("name", "image", "price", "desc", "is_active")
Но когда я обновляю, он не сохраняет исходное значение активного статуса объекта, подлежащего обновлению.
Я тоже пытался form.fields["is_active"].widget.attrs['disabled'] = 'disabled'
, но это все равно не сохраняет ценности.
Есть ли какой-либо способ отключить его, но при обновлении он сохранит исходное значение этого конкретного поля? Спасибо!
Комментарии:
1. Можете ли вы добавить свою форму и представление к вопросу?
2. Не могли бы вы, пожалуйста, предоставить более подробную информацию? С какой точки зрения вы это используете?
3. Я уже обновил детали. Спасибо!
4. Это
FoodListView
илиFoodUpdateView
то, с чем у вас возникли проблемы? ВFoodUpdateView.form_valid
вы дважды передаете экземпляр классу формы?5. Отключенные поля не будут отображаться в запросе, вы могли бы попробовать вместо этого скрыть поле?