مكرر نموذج جانغو

0

لدي سؤال أساسي حول نماذج جانغو. لدي نموذج لمرضى العيادة (يرثون من النماذج. النموذج) الذي يتكون من الحقول ، الحقول الصحيحة ، حقل نص واحد ، وحقل بريد إلكتروني واحد. تقتصر الأنواع المرتبطة بهذه الحقول على أحرف ASCII (على ما أظن) لذلك لا أعتقد أن أي إعادة تعريف منخفضة المستوى يجب أن تكون ضرورية. قل ، مع ذلك ، أن لدي كائن المريض س. أريد أن أكون قادرًا على التكرار من خلال الحقول المختلفة في هذا الكائن وطباعة القيم المقابلة في قالب. لا أريد على وجه التحديد ترميز أسماء الحقول / الحقول كما كنت أفعل حتى الآن في حالة تغيير النموذج نفسه في وقت لاحق. مثال ->

{% for value in x %}
<p> {{ value }} </p>
{% endfor %}

أفهم أنه ، كما هو الحال مع أي فئة مخصصة تقريبًا ، يجب أن أكتب طريقة __ iter __ لتفصيل كيفية التكرار من خلال كائن المريض هذا. أنا لا أعرف كيف أكتب هذه الطريقة. لا أعرف ما إذا كنت بحاجة أيضًا إلى كتابة طريقة __ التالية __. وقد قوبلت محاولاتي لإنشاء شيء مثل هذا بأخطاء مثبطة ومهينة تقريبًا. ارجو المساعدة :)

2 الاجابة

0

إذا فهمت سؤالك بشكل صحيح ، فأنت بحاجة إلى كل ما تبذلونه model fields في نموذجك . إذا كان الأمر كذلك ، استخدم get_fields() من _Meta API كـ

all_my_model_fields = [field.name for field in MyModel._meta.get_fields()]

:مؤلف
0

عليك فقط كتابة __iter__ طريقة. في حالتك سأكتب طريقة مخصصة تقوم بذلك نيابة عنك بدلاً من تعديل __iter__ طريقة سحرية. إدخال هذا التغيير في نماذج django سيكون مربكًا لأنه ليس السلوك المتوقع. اذهب لشيء مثل iter_fields() . تحقق من هذا المستند لمعرفة كيفية استرداد حقول النموذج

:مؤلف
فوق
قائمة طعام