سؤال

أحاول استخدام WTForms مع WebApp دون حظ كبير.

أود أن أكون قادرًا على استخدام form_field Templatetag ، كما هو موضح في الوثائق:

{% form_field form.username class="big_text" onclick="do_something()" %}

لقد تم تثبيت WTForms بشكل جيد في طلبي ، لكن علامات قالب Django الخاصة بها لا تعمل بالنسبة لي. هل لدى أي شخص تعليمات حول كيفية تثبيت هذا؟

إذا لم أتمكن من الحصول على هذا العمل ، فمن المحتمل أن أستسلم وأتحول إلى قوالب Jinja2. السبب في أننا احتفظنا به مع Django حتى الآن هو الحد من عدد التبعيات قدر الإمكان.


هذا ما جربته حتى الآن:

لقد قمت بتثبيت Django 1.1 محليًا وقمت بتمكينه لكل الوثائق.

حاولت إضافة INSTALLED_APPS = ['wtforms.ext.django'] لي settings.py - بدون تأثير.

حاولت تسجيل WTForms Templatetag يدويًا :.

register = webapp.template.create_template_register()

from wtforms.ext.django.templatetags import wtforms

register.tag('form_field', wtforms.do_form_field)

هذا أعطاني خطأ: InvalidTemplateLibrary: Could not load template library from template_helpers, No module named django.templatetags

لذلك حاولت نسخ ولصق علامات القالب في الكود الخاص بي ، وحصلت على الخطأ TemplateSyntaxError: Could not parse the remainder: ' form.foobar' from 'form_field form.foobar.

ومع ذلك ، لا أعتقد أن تسجيل Templatetag نجح ، لأن الخطأ كان هو نفسه بدون هذا الرمز.


تحديث: سأترك هذا السؤال في حالة قيام شخص ما على الإنترنت بإجابة عليه يومًا ما ، لكنني تحولت إلى Jinja2 والآن كل شيء يعمل بشكل مثالي. WebApp مع قوالب Django ماتت بالنسبة لي. ؛-)

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

المحلول

أوصي قوالب Jinja2 على Django: http://jinja.pocoo.org/ إنه يعتمد على قوالب Django ولكنها أكثر قوة وسهلة الاستخدام. لا أعتقد أنه من الجيد استخدام قوالب Django بدون مكدس Django. أيضًا ، إذا كنت تريد إطارًا أكثر تنظيماً ، فإن إطار عمل بسيط للغاية هو قارورة: http://www.pocoo.org/projects/flask/#flask. لا أستطيع الثناء على هاتين المكتبتين بما فيه الكفاية. عملت لفترة طويلة في Django ووجدت أن هذا التحرير والسرد منعش للغاية ومختصرة.

ملاحظة: يجب أن تكون هذه عملية بسيطة للغاية للمنفذ. استغرق الأمر مني 10 دقائق للمنفذ عبر موقع ويب عندما اكتشفت للتو قارورة.

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