簡體   English   中英

從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 ,它就像魔術一樣。

安裝smart_selects

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')),
    . . . . .
]

請參閱django-smart-choices安裝

ChainedForeignKey的工作

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.

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