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

Вернуться на верх