Создание динамического поля модели в Django?
В моем models.py моя модель store содержит поля name, brand_name
Теперь, я хочу создать новое поле brand_type в модели магазина динамически из Django admin, как я могу это сделать?
вы не можете создавать поля модели через панель администратора
вы must создаете поля в models.py
панель администратора - это только удобный способ манипулировать базой данных, но не модифицировать ее таблицы
Необходимо выполнить миграцию во время работы сервера. Создайте поле brand_type в вашей модели и установите blank=True
В вашем models.py
class Store(models.Model):
name = ...
brand_name = ...
brand_type = models.CharField(max_length = 40, blank= True, null =true)
В вашей консоли
./manage.py makemigrations
./manage.py migrate
Дополнительные материалы:
Если вас интересует Выбор текста
или
Если вы хотите сделать его более динамичным на основе вашего случая использования,
создайте модель BrandType и свяжите ее в Store с помощью
brand_type = models.ForeignKey(BrandType,on_delete=models.PROTECT)
models.py
class BrandType(models.Model):
name = ...
some_other fields=
#... Store model follows
admin.py
# other stuff
from .models import BrandType
admin.site.register(BrandType)
Забрать: Не рекомендуется изменять ваш models.py файл, используя админку напрямую, это вызовет проблемы с целостностью, и есть лучшие способы достичь желаемой функциональности.