Django编辑模型的管理模板

时间:2020-04-20 16:56:26

标签: django django-models django-forms django-templates

我是Django的新手,正在从事一个项目。

我有这些型号

class Test(models.Model):
    name = models.CharField(max_length=255)
    description = models.CharField(max_length=255, blank=True)
    applicable_device = models.ManyToManyField(Device)
    applicable_platform = models.ManyToManyField(Platform)

    class Meta:
        verbose_name = 'Test'
        verbose_name_plural = 'Tests'

    def __str__(self):
        return self.name


class Event(models.Model):
    name = models.CharField(max_length=255)
    test = models.ManyToManyField(Test)
    applicable_devices = models.ManyToManyField(Device)

    class Meta:
        verbose_name = 'Event'
        verbose_name_plural = 'Events'

    def __str__(self):
        return self.name

class Property(models.Model):
    name = models.CharField(max_length=255)
    description = models.CharField(max_length=255)

    applicable_events = models.ManyToManyField(Event)
    applicable_devices = models.ManyToManyField(Device)
    applicable_platform = models.ManyToManyField(Platform)

    property_type = models.CharField(max_length=20, choices=TYPE_CHOICES)
    expected_value = ArrayField(models.CharField(max_length=200), blank=True)

当我转到Django管理面板中的Event部分时,我可以编辑事件。但是我希望能够在编辑事件的下方看到适用于它的所有属性的列表。

这可能吗?

1 个答案:

答案 0 :(得分:0)

我不确定您在管理员 .py 中已经完成了什么。您是否修改了 admin.py 文件和 form.py ?
表单.py

from . import models
from django.forms.models import ModelForm
class EventForm(ModelForm):
    class Meta:
        model = models.Event
        fields = ('id','name','test', 'applicable devices')

admin.py

from . import models
from . import forms
from django.contrib import admin

class EventAdmin(admin.ModelAdmin):
    form = forms.EventForm
    list_display = ['name','test', 'applicable devices']
# then to register your ModelAdmin
admin.site.register(Event, EventAdmin)
````