اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

نموذج الإعدادات المخصصة
إذا كنت تهدف إلى إنشاء نموذج إعدادات مخصصة ، فهذا ممكن بالطريقة التالية: يمكنك أن ترث من ConstanceAdmin وتعيين خاصية النموذج على المسؤول المخصص الخاص بك لاستخدام النموذج المخصص الخاص بك. يتيح لك هذا تحديد مجموعات النماذج والتخطيطات الخاصة بك ، على غرار تحديد نموذج مخصص على نموذج Django ModelAdmin القياسي. بهذه الطريقة يمكنك تصميم نموذج الإعدادات وإعدادات المجموعة بالكامل بالطريقة التي تريدها.

from constance.admin import ConstanceAdmin, ConstanceForm, Config
class CustomConfigForm(ConstanceForm):
      def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

class ConfigAdmin(ConstanceAdmin):
    change_list_form = CustomConfigForm
    change_list_template = 'admin/config/settings.html'

admin.site.unregister([Config])
admin.site.register([Config], ConfigAdmin)

يمكنك أيضًا تجاوز طريقة get_changelist_form التي يتم استدعاؤها في changelist_view للحصول على النموذج الفعلي المستخدم لتغيير الإعدادات. يتيح لك هذا اختيار نموذج مختلف وفقًا للمستخدم الذي قدم الطلب. فمثلا:

class SuperuserForm(ConstanceForm):

class MyConstanceAdmin(ConstanceAdmin):
    def get_changelist_form(self, request):
        if request.user.is_superuser:
          return SuperuserForm:
        else:
          return super().get_changelist_form(request)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...