2024-06-06 18:02:55 +08:00
|
|
|
{% load tags %}
|
|
|
|
<form id="addEditForm" method="post">
|
|
|
|
{% csrf_token %}
|
2024-06-06 21:27:24 +08:00
|
|
|
{% if form.instance.pk %}
|
|
|
|
<input type="hidden" name="id" value="{{ form.instance.pk }}">
|
2024-06-06 18:02:55 +08:00
|
|
|
{% endif %}
|
|
|
|
<div class="card-body">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
|
|
{% for field in form %}
|
|
|
|
{% if forloop.counter0|divisibleby:2 %}
|
|
|
|
<div class="mb-3">
|
|
|
|
<label class="form-label" for="{{ field.id_for_label }}">{{ field.label }}</label>
|
2024-06-06 21:27:24 +08:00
|
|
|
{% if field.field.widget.input_type == "text" %}
|
|
|
|
<input type="text" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|default_if_none:'' }}" placeholder="{{ field.label }}">
|
|
|
|
{% elif field.field.widget.input_type == "number" %}
|
|
|
|
<input type="number" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|default_if_none:'' }}" placeholder="{{ field.label }}">
|
|
|
|
{% elif field.field.widget.input_type == "select" %}
|
2024-06-06 18:02:55 +08:00
|
|
|
<select class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}">
|
|
|
|
{% for choice in field.field.choices %}
|
|
|
|
<option value="{{ choice.0 }}" {% if choice.0 == field.value %}selected{% endif %}>{{ choice.1 }}</option>
|
|
|
|
{% endfor %}
|
|
|
|
</select>
|
|
|
|
{% elif field|is_input_type:"textarea" %}
|
2024-06-06 21:27:24 +08:00
|
|
|
<textarea class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" rows="3">{{ field.value|default_if_none:'' }}</textarea>
|
|
|
|
{% elif field.field.widget.input_type == "date" %}
|
|
|
|
<input type="date" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|date:"Y-m-d" }}">
|
|
|
|
{% elif field.field.widget.input_type == "email" %}
|
|
|
|
<input type="email" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|default_if_none:'' }}" placeholder="{{ field.label }}">
|
|
|
|
{% elif field.field.widget.input_type == "password" %}
|
2024-06-06 18:02:55 +08:00
|
|
|
<input type="password" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" placeholder="{{ field.label }}">
|
2024-06-06 21:27:24 +08:00
|
|
|
{% elif field.field.widget.input_type == "checkbox" %}
|
2024-06-06 18:02:55 +08:00
|
|
|
<div class="form-check">
|
|
|
|
<input type="checkbox" class="form-check-input" id="{{ field.id_for_label }}" name="{{ field.name }}" {% if field.value %}checked{% endif %}>
|
|
|
|
<label class="form-check-label" for="{{ field.id_for_label }}">{{ field.label }}</label>
|
|
|
|
</div>
|
|
|
|
{% else %}
|
|
|
|
{{ field }}
|
|
|
|
{% endif %}
|
|
|
|
{% if field.help_text %}
|
|
|
|
<small class="form-text text-muted">{{ field.help_text }}</small>
|
|
|
|
{% endif %}
|
|
|
|
{% for error in field.errors %}
|
|
|
|
<div class="text-danger">{{ error }}</div>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
|
|
{% for field in form %}
|
|
|
|
{% if not forloop.counter0|divisibleby:2 %}
|
|
|
|
<div class="mb-3">
|
|
|
|
<label class="form-label" for="{{ field.id_for_label }}">{{ field.label }}</label>
|
2024-06-06 21:27:24 +08:00
|
|
|
{% if field.field.widget.input_type == "text" %}
|
|
|
|
<input type="text" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|default_if_none:'' }}" placeholder="{{ field.label }}">
|
|
|
|
{% elif field.field.widget.input_type == "number" %}
|
|
|
|
<input type="number" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|default_if_none:'' }}" placeholder="{{ field.label }}">
|
|
|
|
{% elif field.field.widget.input_type == "select" %}
|
2024-06-06 18:02:55 +08:00
|
|
|
<select class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}">
|
|
|
|
{% for choice in field.field.choices %}
|
|
|
|
<option value="{{ choice.0 }}" {% if choice.0 == field.value %}selected{% endif %}>{{ choice.1 }}</option>
|
|
|
|
{% endfor %}
|
|
|
|
</select>
|
|
|
|
{% elif field|is_input_type:"textarea" %}
|
2024-06-06 21:27:24 +08:00
|
|
|
<textarea class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" rows="3">{{ field.value|default_if_none:'' }}</textarea>
|
|
|
|
{% elif field.field.widget.input_type == "date" %}
|
|
|
|
<input type="date" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|date:"Y-m-d" }}">
|
|
|
|
{% elif field.field.widget.input_type == "email" %}
|
|
|
|
<input type="email" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" value="{{ field.value|default_if_none:'' }}" placeholder="{{ field.label }}">
|
|
|
|
{% elif field.field.widget.input_type == "password" %}
|
2024-06-06 18:02:55 +08:00
|
|
|
<input type="password" class="form-control" id="{{ field.id_for_label }}" name="{{ field.name }}" placeholder="{{ field.label }}">
|
2024-06-06 21:27:24 +08:00
|
|
|
{% elif field.field.widget.input_type == "checkbox" %}
|
2024-06-06 18:02:55 +08:00
|
|
|
<div class="form-check">
|
|
|
|
<input type="checkbox" class="form-check-input" id="{{ field.id_for_label }}" name="{{ field.name }}" {% if field.value %}checked{% endif %}>
|
|
|
|
<label class="form-check-label" for="{{ field.id_for_label }}">{{ field.label }}</label>
|
|
|
|
</div>
|
|
|
|
{% else %}
|
|
|
|
{{ field }}
|
|
|
|
{% endif %}
|
|
|
|
{% if field.help_text %}
|
|
|
|
<small class="form-text text-muted">{{ field.help_text }}</small>
|
|
|
|
{% endif %}
|
|
|
|
{% for error in field.errors %}
|
|
|
|
<div class="text-danger">{{ error }}</div>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2024-06-06 21:27:24 +08:00
|
|
|
<div class="modal-footer">
|
|
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button>
|
|
|
|
<button type="submit" class="btn btn-primary" id="submitForm">保存</button>
|
|
|
|
</div>
|
2024-06-06 18:02:55 +08:00
|
|
|
</form>
|