В настоящее время я работаю с приложением django + python, использующим базу данных mongoDB. Объекты в коллекциях в этой базе данных могут иметь переменное количество атрибутов. Что мне интересно, так это то, нужно ли мне создавать поле модели для каждого атрибута и просто иметь дело с тем фактом, что большое количество атрибутов не заполнено, или существует метод, с помощью которого вы можете иметь переменное число полей вdjango Моделируйте или динамически генерируйте поля в объекте, а не указывайте в модели (или если есть пакет, который позволяет это).
На этот вопрос уже был дан ответ для базы данных SQL, используемой с django здесь , но это на самом деле не говорит мне, было ли это невозможно для приложения django с базой данных mongodb.
Вот пример некоторых объектов с переменными полями, которые будут включены в одну коллекцию.
{
'id': 1,
'name': 'time',
'hat': 'top hat',
'shirt': 'dress shirt',
'vest': 'tweed',
'pants': 'black trousers',
'stopwatch': 'yes'
},
{
'id': 2,
'name': 'James'
},
{
'id': 3,
'pet': 'dragon'
'name': 'Ganilon'
}
Я надеюсь найти что-то, что динамически генерирует поля (или даже только некоторые из них) найдены в объекте по модели, так что, возможно:
class Character(models.Model):
id = models.IntegerField(primary_key=True)
class Meta:
db_table = "characters"
managed = false
generate_fields = True