كيف أقوم بإدراج العناصر في نماذج جانغو الخاصة بي؟

StackOverflow https://stackoverflow.com/questions/274529

  •  07-07-2019
  •  | 
  •  

سؤال

أنا أعمل مع مثال django Publisher، وأريد إدراج جميع الناشرين في قاعدة البيانات عبر قالب list_publisher.html الخاص بي، يبدو القالب الخاص بي؛

{% extends "admin/base_site.html" %}
{% block title %}List of books by publisher{% endblock %}
{% block content %}

<div id="content-main">
<h1>List of publisher:</h1>

{%regroup publisher by name as pub_list %}


{% for pub in pub_list %}


<li>{{ pub.name }}</li>

{% endfor %}
</div>
{% endblock %}

ولكن عندما أركض "http://127.0.0.1:8000/list_publisher/"يقوم القالب بطباعة عنوان الصفحة بدون أي خطأ!ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

بعض الاقتراحات:

  • تأكد من أن base_site.html الخاص بك يحدد ملف {% block content %}{% endblock %} القسم الذي سيتم تحسينه بواسطة list_publisher.html الخاص بي
  • تحقق من أصل قائمتك: {%regroup publisher by name as pub_list %}{{ pub_list|length }}.يجب أن يعرض ذلك على الأقل طول قائمتك.إذا كان "0" ...أنت تعرف لماذا لا يعرض أي شيء
  • تأكد من أن قائمتك مرتبة بالفعل حسب الاسم قبل استخدام إعادة التجميع، أو استخدم ملف {% regroup publisher|dictsort:"name" by name as pub_list %} لكى تتأكد

إذا كان الطول هو "0"، فيجب عليك التأكد من تعريف الناشر (تمت تهيئته من قاعدة البيانات)، وفرزه بشكل مناسب.

بمعنى آخر، هل ترى في أي مكان (في القالب الخاص بك أو في القوالب المحددة):

publisher = Publisher.objects.all().order_by("name")

?
(مرة أخرى، الترتيب حسب الاسم مهم، للتأكد من أن علامة إعادة التجميع الخاصة بك تعمل بشكل صحيح)

نصائح أخرى

وإجابة جيدة من قبل VonC.

وهناك طريقة سريعة وقذرة للنظر في pub_list هو التمسك [{{pub_list}}] في القالب. أنا وضعت بين قوسين معقوفين في حالة انها فارغة. راجع للشغل، قد تحصل على شيء يشبه [,,,,,]. وذلك لأن ملفوفة المراجع الكائن في <> والمتصفح الخاص بك هو الذهاب WTF؟ لا مجرد عرض المصدر وسترى النتيجة الكاملة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top