إذا كنت تقصد ال Forms الخاصة بال Models في ال Admin الخاصة بالجانغو يمكننا عمل ذلك بواسطة إنشاء model في models.py سنسميه في حالتنا class ExtraField
ونعرف بداخله الحقل الذي تريد إضافته عند الضغط على add new field
ونربطه بعلاقة Foreign Key مع ال model المرتبط بال Form سنسميه في حالتنا Post
هكذا سيكون الكود داخل ال models.py :
class ExtraField(models.Model):
extra_data = models.CharField(max_length=200)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
def __str__(self):
return self.extra_data
ملاحظة : لا تنسى عمل makemigrations and migrate
من ثم في ملف الadmin.py عند تسجيل ال model المرتبط بالForm
نقوم بتعريف class ExtraFieldTabularInline :
from .models import ExtraField, Post
class ExtraFieldTabularInline(admin.TabularInline):
model = ExtraField
من ثم نقوم بتعريف class ال PostAdmin
بإضافة انه سيقبل Inlines اذن سنضيف ايضاً class PostAdmin :
class PostAdmin(admin.ModelAdmin):
inlines = [ExtraFieldTabularInline]
class Meta:
model = Post
من ثم تسجيل form الpost في لوحة التحكم :
admin.site.register(Post, PostAdmin)
هكذا أصبح لديك اضافة حقول كما تريد ولقد تم انشاء الزر دون تحديث الصفحة وهذا إجابة لسؤالك اذا كنت تقصد الforms داخل لوحة التحكم الخاصة بالدجانغو
استخدمت في المثال الجدول الmodel المرتبط بال form اسميته Post لتوضيح الفكرة ولكن لك ان تطبق الفكرة على اي جدول او model حسب ما اسميته.
كانت إجابتي بخصوص الforms داخل لوحة التحكم في دجانقو لم اتطرق الى الforms الخاص بالعرض في التمبلت تحياتي .
مثال بصري الى النتيجة :