簡體   English   中英

有條件的Django模型創建

[英]Conditional Django Model Creation

我正在為django編寫一個我打算發布的應用程序。 此應用需要Bolean設置變量CONSUMER_REGISTRATION

獲取此變量的目的是決定是否定義ConsumerRegistrationModel

這就是我所做的。

from django.db import models
from django.conf import settings

if getattr(settings, 'CONSUMER_REGISTRATION', False):
    class ConsumerRegistration(models.Model):
        ...

它的工作正常。 我面臨的唯一問題是,開發人員每次更改設置變量時都需要運行makemigrations和遷移命令。

1-這項工作可以自動化嗎? 因此,如果他們更改了變量,那么django中的一些代碼會自動運行makemigrations和migration命令。

2-還是將這項工作留給開發人員完全可以嗎?

3-另外我想問一問,在Django中這樣做是一個好方法嗎?

您可以簡單地定義模型而沒有任何條件,並調整應用程序邏輯,以便僅當'CONSUMER_REGISTRATION'標志設置為True時, ConsumerRegistration模型的實例才與(例如,創建,更新等)進行交互。

每次更改'CONSUMER_REGISTRATION'的值都運行遷移,比將ConsumerRegistration表保留為空會造成更多的混亂。

如@ dahrens所示 ,您可以在一個單獨的應用程序中隔離ConsumerRegistration模型以及相關邏輯,該應用程序僅在開發人員需要時才安裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM