好的我脑子里有一个钉子,我有两个模型,第一个是在settings.py中安装的应用程序自动生成,但我需要这个已安装的应用程序出现在机构模型中,因为每个机构都有不同的应用程序,我无法使用ManyToMany字段选项。这是我的models.py:
<table st-table="feedBacks" st-pipe="callServer"
class="table table-striped table-bordered table-hover table-highlight table-checkable">
<thead>
<tr>
<th style="width: 160px">Datum</th>
<th>Produkt</th>
<th>Version</th>
<th>Plattform</th>
<th>FeedBack</th>
<th style="width: 125px">Option</th>
</tr>
<tr>
<th>
<p class="input-group">
<input type="text" class="form-control"
datepicker-popup="{{format}}" ng-model="dt"
is-open="opened" datepicker-options="dateOptions"
ng-required="true"
close-text="Close" st-search="Timestamp" id="dateFilter" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="openDate($event)"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</th>
<th><input st-search="ApiKey.Product.ProductName" /></th>
<th><input st-search="ApiKey.ProductVersion" /></th>
<th>
<div class="btn-group">
<button class="btn btn-default btn-xs" st-plattform-filter="" st-plattform-filter-column="Plattform">
<span class="fa fa-reorder"></span>
</button>
<button class="btn btn-default btn-xs" st-plattform-filter="0" st-plattform-filter-column="Plattform">
<span class="fa fa-android"></span>
</button>
<button class="btn btn-default btn-xs" st-plattform-filter="1" st-plattform-filter-column="Plattform">
<span class="fa fa-windows"></span>
</button>
<button class="btn btn-default btn-xs" st-plattform-filter="2" st-plattform-filter-column="Plattform">
<span class="fa fa-apple"></span>
</button>
</div>
</th>
<th></th>
<th></th>
</tr>
</thead>
自动生成来自INSTIT / views.py
中已安装应用的列表class Module(models.Model):
name = models.CharField(max_length=25)
enabled = models.BooleanField(default=False)
class Institution(models.Model):
name = models.CharField(max_length=25)
module = models.TexField(null=True, blank=True)
在机构模板中,我以这种方式发送已安装应用的列表:
from settings import INSTALLED_APPS as tuple_apps
def search_update_modulo():
list_of_apps = [x for x in tuple_apps if "apps" in x]
institution_module = []
for i in list_of_apps:
i = i[5:]
if i != "persons":
institution_module.append(i)
modules_in_db = Module.objects.all().count()
if modulos_en_bd < len(modulos_instituciones):
m = modulo.objects.all().delete()
for x in modulos_instituciones:
m = modulo(nombre=str(x).title())
m.save()
现在我的问题是,如何从模板中检索值,然后隐藏在列表中并将其保存在Institution模型的模块字段中或以任何其他方式解决此问题。我会感激任何答案。 Thaks
答案 0 :(得分:0)
如果您只是在自动生成列表时保存Module对象,那么您可以在模型类Module(models.Model)中使用post.save信号来检测模块是否已启用,然后您可以将该字段保存到Institution字段。
这样的事情:
class Module(models.Model):
name = models.CharField(max_length=25)
enabled = models.BooleanField(default=False)
def update_institution(sender, instance, **kwargs):
if instance.enabled:
# Some code here to append the module
# to an institution
# Institution.module.list(append(instance)
# register the signal
post_save.connect(update_institution, sender=Module, dispatch_uid="update_institution_modules")