我有一些問題,配置在Django管理下設置的更多。使用動態創建的類別作爲Django管理站點模型和註冊模型不止一次
設置:
可以說我有以下Django模型:
class Food(models.Model):
section = models.ManyToManyField(Section, related_name='foods')
class Fruit(Food):
pass
class Meat(Food):
pass
然後另一種模式,它允許最終用戶給出自定義名稱的部分,並分配相應的模型,該節:
class Section(models.Model):
FOOD = 'FO'
FRUIT = 'FR'
MEAT = 'ME'
MODEL_CHOICES = (
(FOOD, 'Food'),
(FRUIT, 'Fruit'),
(MEAT, 'Meat'),
)
name = models.CharField(max_length=20)
model = models.CharField(max_length=2,
choices=MODEL_CHOICES,
default=FIELDS)
用戶在數據庫中定義了以下自定義部分:
name = Oranges model = Fruit
name = Apples & Pears model = Fruit
name = Organic beef model = Meat
name = Regular beef model = Meat
目前:
在管理我們得到如下:
Foods
Meats
Fruits
Sections
管理使我們能夠增加肉類或水果,並將其分配給一個自定義的部分,但這需要數據輸入的人知道橙子是一種水果或肉類。我只是不願意留給偶然的機會,你知道..
例如目前的行動順序是這樣的:
admin -> add Fruit item -> Name it Blood Orange & assign it to the Oranges section
我想怎麼辦:
我希望管理員列出自定義部分的名稱,以便用戶可以選擇將項目添加到這些用戶創建的部分之一:
Oranges (user defined)
Apples & Pears (user defined)
Organic beef (user defined)
Regular beef (user defined)
Sections
現在,當用戶選擇通過管理成果形式爲橙色添加到數據庫將提供和有機牛肉將提供肉形式。因此,操作順序爲:
admin -> add Orange -> Name it Blood Orange
我當然可以寫這樣的自定義接口,但我希望這可以很容易地在Django管理接口來實現?
你能更清晰,或精確,或更復雜的與你所需的輸出?我想你可以通過動態創建管理員類來完成,其中一個基類繼承了常用屬性,一些字段基於從模型中提取的值 – kicker86
@ kicker86請參閱上面修改的問題。我希望這有助於澄清。如果您有具體問題,請告訴我。 – arctelix