Django UpdateView: Как отобразить исходные значения?
Я использую Django UpdateView для обновления класса Model
class TestCase(models.Model):
name = models.CharField(max_length=200)
executable = models.CharField(max_length=1023)
parameter_value_list = models.TextField()
test_type = models.CharField(max_length=200)
created_by = models.CharField(max_length=200, default = "user")
create_datetime = models.DateTimeField("testcase created on", auto_now = True)
Мое мнение таково:
class MyEditCaseView(UpdateView):
model = TestCase
fields = ['name', 'executable', 'parameter_value_list', 'test_type']
template_name_suffix = '_update_form'
def get_success_url(self):
return reverse("myApp:testCase")
Мой шаблон выглядит следующим образом:
<form action="{% url 'myApp:editCase' case.id %}" method="post">
{% csrf_token %}
<input type="submit" value="Edit">
</form>
Урлы:
path('editCase/<int:pk>/', views.MyEditCaseView.as_view(), name='editCase')
Все работает нормально, но у меня есть 2 вопроса:
The update view page pop out is blank for all fields even they have old values. I won't like to change all fields. How to show the old values, if I don't want update all fields?
The default lay out of the update view page seems not elegant. Can I change the style?
Форма Django может быть распределена.
<!--begin::Form-->
<form method="post">
{% csrf_token %}
{% field in form.fields %}
<input name="{{ field.name }}" type="text" value="{{ field.value }}"/>
{% endfor %}
</form>
<!--end::Form-->
- На странице просмотра обновления все поля пустые, даже если они имеют старые значения. Я не хочу изменять все поля. Как показать старые значения, если я не хочу обновлять все поля?
Вы можете использовать значение по умолчанию, как в примере выше, поле значения.
- По умолчанию страница просмотра обновлений выглядит не очень элегантно. Можно ли изменить стиль?
Вы можете использовать атрибут class в каждом поле ввода.
- При нажатии на поле ввода, в котором указано поле "Имя", появляется выпадающий список, содержащий некоторые исторические значения, которые я использовал в качестве кандидатов. Могу ли я удалить или изменить этот исторический список?
Если установить атрибут autucomplete как off, то любая история не будет отображаться.
<input type="text" autocomplete="off" />