如果我在/admin/product/
中创建了一个项目,我会得到product / models.py class Item
中描述的2个字段:category
和name
;
我希望在根据所选类别(a
或b
)创建项目时动态显示第3个字段:
CATEGORIES = (
('a', 'Apple'),
('b', 'Banana'),
)
class Item(models.Model):
category = models.ForeignKey(choices=CATEGORIES)
name = models.CharField(max_length=255)
"""
category.a:
color = models.CharField(max_length=21)
category.b:
count = models.CharField(max_length=21)
"""
字段name
与a
相同,因此b
类别和(color
或count
)字段仅显示({{1}分别为}或a
)类别;
任何帮助是极大的赞赏。谢谢。
的 P.S。
对于某些不正确的标题感到抱歉;
答案 0 :(得分:2)
我认为你要做的是让模型根据类别进行更改。 我这样做的方法是用所有常见信息定义一个抽象模型(在本例中可能称为水果),然后在名为bananas的模型和名为apples的模型中继承它。
要添加新的香蕉/苹果,我会使用适当的管理表单或将逻辑添加到相应的视图,以确定要添加的对象类型。
https://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes
编辑:不幸的是我不知道管理界面如何处理抽象类,我没有手头的测试安装。至于逻辑,在视图中我希望逻辑类似于:
from models import banana, apple
def fruitView(request)
if request.REQUEST["Type"] = "Banana":
b = banana(request.REQUEST["Count"])
b.save()
else:
a = apple(request.REQUEST["Colour"])
a.save()