Если вы хотите разрешить пользователям настраивать формы так, чтобы они могли сохранять атрибуты, о которых вы изначально не думали, то вам следует создать общую модель 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 и т. Д.).В этом случае вам потребуется более сложный подход.