سؤال

أحاول تخصيص CMS مكتوب في جانغو.المحتوى المحررين ليست مرنة بما فيه الكفاية لذلك أنا في محاولة للتوصل إلى حل أفضل.

دون الإفراط في شرح ذلك ، أود أن يكون قليلا مثل جانغو-أفضل قطع أو django-flatblocks.يمكنك تعيين حتى تحرير المنطقة بالكامل من داخل القالب.اريد ربط هذه المناطق القابلة للتحرير إلى مزيج من سلاسل مثيلات الكائن.ومن الأمثلة على ذلك وجود العديد من تحرير المناطق على أساس واحد المنتج:

{% block product_instance "title" %}
{% block product_instance "product description" %}

حتى إذا كان لديك عرض مع منتج آخر كما product_instance هذين blocks سوف تظهر بيانات مختلفة.أود أن أرى أيضا أن يكون هناك استخدام الموقع على نطاق الكتل التي تمر إلا من خلال سلسلة جزء.أساسا, وأود أن تكون قادرة على تمرير 1-ما لا نهاية معرفات.

ولكن أنا حقا يكافح على جبهتين هنا:

  1. كيف يمكنني تحديد العلاقة بين مختلطة " و " معرف المحتوى الفعلي "block"سبيل المثال ؟ لدي شعور contenttypes قد الميزة هنا لكن ليس لدي أي فكرة من أين تبدأ تبحث!

  2. و كيف يمكنني كتابة العلامة قالب لقراءة أعلاه جملة وتحويلها إلى كائن لتقديم?

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

المحلول

لهذا يمكنك إنشاء إدراج الوسم و استخدامه مثل:

{% load my_tags %}
{% product bicycle <extra vars ...> %}

تحديد العلامة ، إضافة إلى app/templatetags/mytags.py:

@register.inclusion_tag('results.html')
def product(item, *extra):
    #maybe repackage extra variables
    #and add them to the returned dictionary
    item_form = ItemForm(item) #form.ModelForm instance
    return {'item': item, 'item_form':item_form, ...}

ثم سوف تحتاج قالب يعود html البند:

<h1>{{item.title}}</h1>
{{item_form}}
... add some conditional statements depending on extra vars
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top