[英]How save a list generate from database to a django model field?
好的,我对此很感兴趣,我有两个模型,第一个模型是从settings.py中已安装的应用程序自动生成的,但是我需要这个已安装的应用程序出现在Institution模型中,因为每个Institution都会有不同的应用程序,我可以不要使用ManyToMany字段选项。 这是我的models.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)
根据机构/views.py中已安装的应用程序自动生成列表
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()
在机构模板中,我通过以下方式发送已安装应用程序的列表:
{% for m in module_list %}
<tr class="cursor">
<td >{{ m }}</td>
<td > <input id="id_habilitado" name="habilitado" type=checkbox {% if m.habilitado %} checked {% endif %} value=""> </td>
</tr>
{% endfor %}
现在我的问题是,我如何才能从模板中检索值,然后隐式存储在列表中,然后将其保存在Institution模型中的模块字段中,或者通过其他任何方式来解决此问题。 我将不胜感激。 Thaks
如果仅在自动生成列表时保存模块对象,则可以在模型类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")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.