django ، الحصول على كائنات من قاعدة البيانات إلى القالب في شكل قابل للعرض

0

أنا جديد على Django ، والسؤال هو كيفية كيفية تمرير المتغيرات من قاعدة البيانات إلى القالب في نموذج حيث تكون مرئية. تم إنشاء المعلومات الموجودة في قاعدة البيانات والنموذج باستخدام pandas لأخذ ملف CSV وإنشاء النموذج. بعد قليل من البحث ، تمكنت من إضافة مفتاح أساسي لقاعدة البيانات وعند استخدام / admin يمكنني رؤية أن قاعدة البيانات مليئة بمعلومات من ملف CVS. الآن يبدو أن المشكلة هي أنه يتم تمرير كائن إلى القالب بدلاً من سلسلة يمكن رؤيتها.

في وجهات النظر لدي

def newsinspector(request):
    df=Df.objects.all()
    return render(request,'boards/the_file.html',{'df':df})

في القالب لدي

<h1>Title: {{ df.Name }}</h1>
<p><strong>My info:</strong> {% for d in df.all %}{{d.name}}{% if not forloop.last %}, {% endif %}{% endfor %}</p>

يبدو النموذج الذي تم إنشاؤه من قبل المفتش

    class Df(models.Model):
        index = models.IntegerField(primary_key=True, blank=True, null=False)
        user_rank = models.IntegerField(db_column='User_Rank', blank=True, null=True)  # Field name made lowercase.
        name = models.TextField(db_column='Newspaper_Name', blank=True, null=True)  # Field name made lowercase.
        # some other similar fields mostly TextFields


        class Meta:
            managed = False
            db_table = 'df'

المشكلة هي أنني أبدو وكأنني أمر بتمرير كائن بدلاً من سلسلة يمكن استخدامها في HTML. على سبيل المثال أحصل على شيء مثل

عنوان:

معلوماتي: كائن Df (0) ، كائن Df (1) ، كائن Df (2) ، كائن Df (3) ،

عندما أود الحصول على شيء مثل

اسم العنوان

معلوماتي: item1 ، item2 ، item3 ، الخ ....

عندما أقوم باستبدال القاموس في طريقة العرض ('df': df} بسلسلة ، فإن المتغير يمر ويطبع في ملف html للقالب كما أتوقع.

لذا في مكان ما أفقد كيفية تحويل كائن db إلى سلسلة. مساعدة؟

1 إجابة

0

ليس من الواضح تمامًا ما تريده هنا. df لا تحتوي على سمة اسم ، لأنها مجموعة استعلام - أي قائمة بكافة الكائنات الموجودة في قاعدة البيانات.

ولكن داخل كل حلقة d لا تحتوي على سمة الاسم. لذا يمكنك القيام بما يلي:

 {% for d in df %}{{ d.name }}{% if not forloop.last %}, {% endif %}{% endfor %}

(أو يمكنك القيام بذلك أيضًا d.index أو أي شيء تريده.)

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام