Three sheets: Application Name table "appname", Unit table "unit", Application name table and Unit table Many-to-many relationship table "Unit_unit_permissionlist"
model_appname.py
#-*-coding:utf-8-*- fromDjango.contribImportAdmin fromDjango.dbImportModels fromDjango.utils.translationImportUgettext_lazy As ___author__='Administrator'application_category= (("Notice", _ (U"Announcements")), (" Report", _ (U"Report")), ("Maintain", _ (U"Maintenance Records")), ("Investigation", _ (U"Village Inspection")), ("Fire_drill", _ (U"Fire Drills")), ("Fire_alarm", _ (U"Fire 119")), ("Inspection", _ (U"Ming Gong shouting village")), )classAppName (models. Model):"""App Name"""ID= Models. Autofield (Primary_key=true, editable=False) name= Models. Charfield (_ (U"App Name"), Choices=application_category, max_length=100, default="", unique=True) Create_time= Models. Datetimefield (_ (U"creation Time"), Db_index=true, auto_now_add=True)classMeta:verbose_name= _ (U"App Name") get_latest_by= ["Create_time"] Verbose_name_plural=Verbose_name db_table="AppName" def __unicode__(self):returnSelf.nameclassappnameadmin (admin. Modeladmin): List_display= ["ID","name","Create_time"]
model_unit.py
#-*-coding:utf-8-*- fromDjango.contribImportAdmin fromDjango.dbImportModels fromDjango.utils.translationImportUgettext_lazy As _ImportUUID fromModel_appnameImportAppNameclassUnit (models. Model):"""Social units"""ID= Models. Autofield (Primary_key=true, editable=False) name= Models. Charfield (_ (U"Unit name"), max_length=100, Unique=true, db_index=True) Address= Models. Charfield (_ (U"Unit Address"), max_length=100, Null=true, Blank=true, db_index=True) Permissionlist=models. Manytomanyfield (AppName)classMeta:verbose_name= _ (U"Unit Information") Verbose_name_plural=Verbose_name db_table='Unit'
form_unit.py
#-*-coding:utf-8-*- fromDjangoImportForms fromDjango.formsImportModelform fromDjango.utils.translationImportUgettext_lazy As _ fromMysite.manage.models.model_unitImportUnit fromMysite.manage.models.model_appnameImportAppNameclassUnitform (modelform): Permissionlist= Forms. Multiplechoicefield (label=u'Permissions List', widget=forms. Checkboxselectmultiple ())def __init__(Self, *args, * *Kwargs):"""Initialize the value of the Permissionlist permission list"""Super (Unitform, self).__init__(*args, * *Kwargs) self.fields['permissionlist'].choices = ((X.id, X.get_name_display ()) forXinchAppName.objects.all ())classMeta:model=Unit Fields= ['name','Address'] Widgets= { 'Address': Forms. TextInput (attrs={'class':'Form-control'}), }
admin.py
fromDjango.contribImportAdmin fromModels.model_unitImportUnit fromForm.form_unitImportUnitform fromModels.model_appnameImportAppName, Appnameadminclassunitadmin (admin. Modeladmin): List_display= ['ID','name','Address'] Search_fields= ('name','Contactnumber') Form=UnitFormadmin.site.register (Unit, Unitadmin) admin.site.register (AppName, appnameadmin)
Django Form form dynamic load drop-down list options content