readonly div (읽기 전용 경우)에 숨겨진 입력을 추가하기 위해 fieldset.html 템플릿을 편집하려고합니다.Django - 읽기 전용 필드의 값을 가져옵니다 (읽기 전용 오류 수정)
{% if field.is_readonly %}
<div class="readonly {% if field.field.name %} field-{{ field.field.name }}{% endif %}">{{ field.contents }}</div>
<input id="{% if field.field.name %} id-{{ field.field.name }}{% endif %}" type="hidden" value="{{ field.field.initial }}"/>
{% else %}
{{ field.field }}
{% endif %}
내 문제는 내가 읽기 전용 "get_readonly_fields"로 필드를 설정하면 숨겨진 필드가 필요하기 때문에, 내가이는 대신 사업부를 사용 장고의 큰 오류라고 생각합니다 (양식을 제출 할 수 없다는 것입니다 숨겨진 입력).
위의 코드로 수정하려고했지만 "field.field.initial"이 읽기 전용 필드에 비어 있기 때문에 값을 입력 할 수 없습니다. 어떻게 해결할 수 있습니까?
UPDATE
내 form.py :
class MyModelAdminForm(forms.ModelForm):
val1 = forms.CharField()
val2 = forms.ModelChoiceField(queryset=User.objects.filter(groups__name='Group1'))
val3 = forms.CharField(widget=forms.DateInput(attrs={'type': 'date'}))
class Meta:
model = MyModel
fields = ('val1', 'val2', 'val3')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self._meta.fields:
attrs = {'class':'form-control'}
self.fields[field].widget.attrs.update(attrs)
내 admin.py
class CampaignAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
return MyModelAdminForm
def get_fieldsets(self, request, obj=None):
return [
(None, {'fields': ['val1', 'val2']}),
('Informations', {'fields': ['val3']}),
]
def get_readonly_fields(self, request, obj=None):
if obj:
return self.readonly_fields + ('val2',)
else:
return self.readonly_fields
내가 그 val2만큼이 편집 페이지에서 읽기 전용 모드에 필요합니다.
타이, 내 질문을 업데이트했습니다. – Mark116