[英]Adding fields from another model into admin inlines - Django admin
[英]adding instances from django admin
这就是我的课程的样子。
class School(models.Model):
state = models.ForeignKey(State, on_delete=models.CASCADE)
region = models.ForeignKey(Region, on_delete=models.CASCADE)
cluster = models.ForeignKey(Cluster, on_delete=models.CASCADE)
school_name = models.CharField(max_length=250)
facilitator = models.CharField(max_length=250)
f_number = models.IntegerField()
f_email = models.EmailField()
school_logo = models.FileField(default='')
school_strength = models.IntegerField()
在哪个州,地区,集群也是类。 我试图创建一个学校网络,分为3个级别,即州,地区,集群。 我假设当我从django admin添加学校时,我认为如果我在选择区域时选择状态和过滤器集群可能会过滤区域,这样就很容易了。 但它似乎没有用。 虽然在群集下拉列表中添加学校后选择了特定的州和地区,但所有州和地区的所有群集都将到来。
有没有解决方案或截至目前我们在django没有这样的选择?
尝试使用 django-smart- choices包中的ChainedForeignKey ,它就像魔术一样。
pip install django-smart-selects
项目settings.py
INSTALLED_APPS=[
. . . . .
. . . . .
'smart_selects',
. . . . .
]
项目urls.py
urlpatterns = [
. . . . .
url(r'^admin/', include(admin.site.urls)),
url(r'^chaining/', include('smart_selects.urls')),
. . . . .
]
from smart_selects.db_fields import *
class State(models.Model):
stateName = models.CharField(max_length=500)
. . . .
class Region(models.Model):
state = models.ForeignKey(State, on_delete=models.CASCADE)
regionName = models.CharField(max_length=500)
. . . . .
. . . . .
class Cluster(models.Model):
state = models.ForeignKey(State, on_delete=models.CASCADE)
region = ChainedForeignKey(Region,chained_field="state",chained_model_field="state", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
clusterName = models.CharField(max_length=500)
. . . . .
. . . . .
class school(models.Model):
state = models.ForeignKey(State, on_delete=models.CASCADE)
region = ChainedForeignKey(Region, chained_field="state",chained_model_field="state", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
cluster = ChainedForeignKey(Cluster, chained_field="region",chained_model_field="region", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
schoolName = models.CharField(max_length=500)
. . . .
. . . .
试试这个,它在admin area
运作良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.