كيف يمكنك تقديم حقل نموذج يدويًا بمجموعة القيمة الأولية؟
-
30-09-2019 - |
سؤال
أحاول تقديم حقول النموذج يدويًا حتى يتمكن زملائي المصمم من معالجة عناصر الإدخال داخل HTML بدلاً من الكفاح في مصدر Python.
بمعنى آخر. بدلاً من إعلان حقول النموذج مثل هذا ...
{{ form.first_name }}
.. أنا فعلا ...
<label for="id_first_name">Your name:</label>
<input type="text" value="{{ form.first_name.somehow_get_initial_value_here }}" name="first_name" id="id_first_name" class="blabla" maxlength="30" >
{% if form.first_name.errors %}<span>*** {{ form.first_name.errors|join:", " }}</span>{% endif %}
المشكلة هي أنه يبدو أنه لا توجد طريقة للحصول على القيمة الأولية للحقل في الطريقة الثانية. {{form.first_name}} العبارة تجعل عنصر الإدخال بالقيمة الأولية المناسبة ولكن بطريقة ما لا يوجد شيء مثل {{form.first_name.initial_value}} الحقل عندما تريد تقديم النموذج يدويًا.
المحلول
هناك تذكرة طويلة الأمد للاهتمام حول هذه القضية بالذات. هناك رمز عينة لتنفيذ مرشح قالب في التعليقات التي يجب أن تفعل ما تحتاجه:
نصائح أخرى
<input value="{{form.name.data|default_if_none:'my_defaut_value'}}" ... />
سيكون عليك استخدام default_if_none
لأنه لن يتم تخزين القيمة الضمنية للحقل المرتبط data.
مزيد من التفاصيل هنا
لا تنتمي إلى StackOverflow