如何将列表从数据库生成到django模型字段?

时间:2015-04-28 12:35:51

标签: python django templates

好的我脑子里有一个钉子,我有两个模型,第一个是在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

1 个答案:

答案 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")