0

私はdjango DateTimePickerウィジェットを使用しています - AdminSplitDateTime() - イベント作成アプリでは、ログインしたユーザがスーパーユーザ権限を持っていても、ウィジェットが表示されない作成フォームにアクセスします。Django DateTimePickerは私のアプリケーション内のスーパーユーザにのみ表示されます

なぜこのように動作するのですか?この行動を克服する方法は?

これは私が/admin/jsi18n/が非スタッフのユーザーのためのアクセス不能だと思い、彼女は自分のフォームコード

class Form(ModelForm): 
    """ 

    """ 

    class Meta: 
     model = Model 
     exclude = ('creator') 
    def __init__(self, *args, **kwargs): 
     super(Form, self).__init__(*args, **kwargs) 
     self.fields['start'].widget = widgets.AdminSplitDateTime() 
     self.fields['end'].widget = widgets.AdminSplitDateTime() 

答えて

0

である私のページ

<script type="text/javascript" src="/admin/jsi18n/"></script> 
<script type="text/javascript" src="/static/admin/js/core.js"></script> 
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js"></script> 
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script> 
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script> 
<script type="text/javascript" src="/static/admin/js/actions.min.js"></script> 
<script type="text/javascript" src="/static/admin/js/calendar.js"></script> 
<script type="text/javascript" src="/static/admin/js/admin/DateTimeShortcuts.js"></script> 

に含まれたスクリプトです。最初のウィジェットの前にJSのスクリプトを追加し、そこにいくつかのVARSを定義する必要があります。

var catalog = {} 
function pluralidx(count) { return (count == 1) ? 0 : 1; } 
function gettext(msgid) { return msgid; } 
function ngettext(singular, plural, count) { return count == 1 ? singular : plural; } 
function gettext_noop(msgid) { return msgid; } 
function interpolate(fmt, obj, named) { 
    if (named) { 
    return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])}); 
    } else { 
    return fmt.replace(/%s/g, function(match){return String(obj.shift())}); 
    } 
} 

これらは、Djangoの/admin/jsi18n/管理者ユーザの下から取得されます。

P.S. JSエラーはブラウザのJSコンソールで見つけることができます。

関連する問題