У меня есть модель Джангоdjango1.6 ModelForm сделать поля только для чтения
models.py
class Item(models.Model):
author = models.ForeignKey(User)
name = models.CharField('Brief summary of job', max_length=200)
created = models.DateTimeField('Created', auto_now=True,auto_now_add=True)
description = models.TextField('Description of job')
Я хотел бы обновить поле описания в ModelForm с использованием UpdateView. Я хотел бы видеть другие поля (автор, название и т.д.), но хотите редактировать и POST отключил
forms.py
from django.forms import ModelForm
from todo.models import Item
class EditForm(ModelForm):
class Meta:
model = Item
fields = ['author', 'job_for', 'name', 'description']
urls.py
urlpatterns = patterns('',
# eg /todo/
url(r'^$', views.IndexView.as_view(), name='index'),
#eg /todo/5
url(r'^(?P<pk>\d+)/$', views.UpdateItem.as_view(), name='update_item'),
)
views.py
class UpdateItem(UpdateView):
model = Item
form_class = EditForm
template_name = 'todo/detail.html'
# Revert to a named url
success_url = reverse_lazy('index')
Я рассмотрел решение, предлагающее form.fields['field'].widget.attrs['readonly'] = True
, но я не уверен, где разместить это и как t o осуществление
Может быть, это [сообщение] (http://stackoverflow.com/questions/324477/in-a-django-form-how-to-make-a-field-readonly-or-disabled-so- что-это-не может-б) может вам помочь. Особенно ответ «christophe31». –