Есть ли способ заставить администрацию django настроить схему моделей - PullRequest
1 голос
/ 17 мая 2019

Хотелось бы узнать, можно ли настроить панель администратора django, чтобы администратор мог добавлять атрибуты к конкретной модели.изменить имя атрибута.Изменение схемы через админ-панель.

1 Ответ

2 голосов
/ 17 мая 2019

Если вы хотите разрешить пользователям настраивать формы так, чтобы они могли сохранять атрибуты, о которых вы изначально не думали, то вам следует создать общую модель CustomField, которая может выглядеть следующим образом:

class CustomField(models.Model):
    model_class = models.CharField(max_length=200)
    name = models.CharField(max_length=200)

YouЗатем потребуется способ хранения и извлечения значений, и это можно сделать с помощью другой модели, подобной этой:

class CustomFieldValue(models.Model):
    custom_field = models.ForeignKey(CustomField)
    object_id = models.IntegerField()
    field_value = models.CharField(max_length=200)

Конечно, извлечение дополнительных полей, рендеринг их в форме, извлечение и сохранение данныхбыть полностью вашей работой.Но как только вы запрограммируете необходимые методы, вы можете добавлять и настраивать новые поля из django admin.

Вы можете столкнуться с проблемами производительности и / или требовать полей другого типа (float, date и т. Д.).В этом случае вам потребуется более сложный подход.

...