内容がモデルに依存するファイルがあります。奇妙なこと: モデルのデータを更新するとき、そのファイルの変数に直接反映されません! 新しいデータを取得するために、開発サーバーを再起動する必要がありました。
解決策として、「リロード」を使用して、問題の変数を含むモジュールをリロードしました! データを表示できるようにする(更新ごとにリロードする)のは良い方法ではないと思います。
リロードせずにデータを直接更新して表示する方法はありますか?
ここに私のコードがあります: 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