2016-12-21 16 views
5

Làm cách nào để đặt trường thành chỉ đọc ở dạng Django? Tôi biết làm thế nào để vô hiệu hóa một lĩnh vực nhưng đó không phải là những gì tôi đang tìm kiếm. Bất kỳ trợ giúp sẽ được đánh giá cao.Trường chỉ đọc ở dạng Django

+0

là nó mô hình dạng? bạn có thể nói thêm về những gì bạn cần –

+0

Có, nó là một CharField của một ModelForm. – Foobar

+0

http://stackoverflow.com/questions/324477/in-a-django-form-how-do-i-make-a-field-readonly-or-disabled-so-that-it-cannot – mtt2p

Trả lời

8

Bạn có thể sử dụng tham số attrs tùy chọn khi xác định Field. Để wit:

somefield = forms.CharField(
    widget=forms.TextInput(attrs={'readonly':'readonly'}) 
) 
5

Trong django 1,9 trong một Field.disabled thuộc tính có sẵn: https://docs.djangoproject.com/en/1.9/ref/forms/fields/#disabled

Các khuyết tật boolean cãi nhau, khi đặt thành True, vô hiệu hóa một trường mẫu sử dụng người khuyết tật thuộc tính HTML để người dùng sẽ không thể chỉnh sửa nó. Ngay cả khi người dùng giảm giá trị của trường được gửi đến máy chủ, nó sẽ bị bỏ qua để ủng hộ giá trị từ dữ liệu ban đầu của biểu mẫu.

khác

sử dụng widget 'readonly' thuộc tính

class PatientForm(forms.ModelForm): 

    def __init__(self, *args, **kwargs): 
     super(PatientForm, self).__init__(*args, **kwargs) 
     self.fields['field'].widget.attrs['readonly'] = True 

    class Meta: 
     model = Patient 
4

Trong Django 1.9+:

somefield = forms.CharField(disabled=True) 
+2

Điều quan trọng cần lưu ý là các trường sẽ không gửi đến máy chủ khi chúng bị 'tắt'. Nếu bạn muốn dữ liệu của trường được đăng, hãy làm cho nó trở thành 'chỉ đọc ' – surfer190

Các vấn đề liên quan