1

我有一个文件,其内容取决于模型。奇怪的事情:更新模型的数据时,它不会直接影响该文件上的变量!我被迫重新启动我的开发服务器以获取新数据。

作为解决方案,我使用“重新加载”重新加载包含相关变量的模块!我认为这不是这样做的好方法(每次更新后重新加载)才能看到数据。

有什么方法可以直接更新和查看数据而无需重新加载?

这是我的代码: http: //pastebin.com/97BPqh0L我在重新加载部分有评论

# parametres/conf.py


from .models import ConfigApp

if ConfigApp.objects.exists():
     config = ConfigApp.objects.all()[0]
else:     config = None

EMPLOYE_BY_COMPAGNY = config.user_compagnie if config else 7

ANNONCES_LIFETIMES = config.annonce_days if config else None

IMAGE_SIZE = config.taille_image*1024 if config else 102400

#####################################################"

# compte/admin.py


from societe.models import Compagnie
from .forms import EmployeAdminForm,NewEmployeAdminForm
from django.contrib import admin
from django.contrib.auth.models import User,Group
import parametres.conf

class EmployeAdmin(admin.ModelAdmin):
     list_display = ['user','identite','email','societe','is_active']
     list_filter = ('is_active','societe')
     form = NewEmployeAdminForm
     search_fields = ("user__username",)
     user_obj = None

     def has_add_permission(self,request):
          reload( parametres.conf) #here reloading

          if request.user.is_superuser or request.user.groups.filter(name='admin').exists():
                    return True
          elif request.user.groups.filter(name='client').exists():
                    if Gestionnaire.objects.filter(employe__user=request.user,is_active=True).exists():
                         employe = request.user.employe_set.all()[0]
                         if Employe.objects.filter(societe=employe.societe).count() >= parametres.conf.EMPLOYE_BY_COMPAGNY:
                              return False
                         return True
          return False
4

1 回答 1

1

解决这个问题的唯一方法是首先不使用全局状态。创建一个使用属性每次从适当位置提取数据的类,如果需要,可以选择实现缓存。

于 2012-08-10T19:32:09.617 回答