과 함께 django-selectable (https://bitbucket.org/mlavin/django-selectable)과 admin tabularInline을 사용하여 인라인 필드 중 하나에서 자동 완성 기능을 사용하고 있습니다. 그것은 생성시 추가 된 인라인에 대해 작동합니다. 내가 가지고있는 문제는 사용자가 인라인에 다른 행을 추가 할 때 자동 완성 기능이 추가되지 않는다는 것입니다.동적 인라인으로 장고 선택 가능
이 버그가있어 여기에이 문제
https://bitbucket.org/mlavin/django-selectable/issue/12/make-it-work-with-dynamically-added-forms 에 정하는 그리고 아래쪽에 jquery.dj.selectable.js 보는 것은 :
if (typeof(django) != "undefined" && typeof(django.jQuery) != "undefined") {
if (django.jQuery.fn.formset) {
var oldformset = django.jQuery.fn.formset;
django.jQuery.fn.formset = function(opts) {
var options = $.extend({}, opts);
var addedevent = function(row) {
bindSelectables($(row));
};
var added = null;
if (options.added) {
var oldadded = options.added;
added = function(row) { oldadded(row); addedevent(row); };
}
options.added = added || addedevent;
return oldformset.call(this, options);
};
}
}
그것은 자동 완성 작업을해야 다음과 같습니다 동적으로 추가 된 행이 있지만이 작업을 수행하기 위해 수행 할 작업을 수행 할 수 없습니다. admin tabularInline.html은 inline_admin_formset을 가지고 있으므로 위의 코드에서와 같이 django.jQuery.fn.formset이 아닌 체크해야합니다. 아니면 어떻게 든 django.jQuery.fn에 inline_admin_formset을 추가 하시겠습니까?
대단히 감사합니다.
저는 0.2 버전을 사용하고 있습니다.
class GrammarInlineForm(forms.ModelForm):
class Meta:
model = Grammar
widgets = {
'description' :forms.Textarea(attrs={'cols': 80, 'rows': 10, 'class': 'grammarInline'}),
'title' : selectable.AutoCompleteSelectWidget(lookup_class=GrammarLookup, allow_new=True),
}
exclude = ('creation_date', 'creator', 'plan')
def __init__(self, *args, **kwargs):
super(GrammarInlineForm, self).__init__(*args, **kwargs)
admin.py에서
인라인 관리자가 만든 메인 관리자 (PlanAdmin)에 추가됩니다 : http://code.djangoproject.com/ticket/15760 I 티켓 읽은 후
class GrammarInline(admin.TabularInline):
form = GrammarInlineForm
model = Grammar
extra = 2
def save_formset(self, request,form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
instance.creator = request.user
instance.save()
formset.save_m2m()
class PlanAdmin(admin.ModelAdmin):
form = PlanForm
list_display = ('title', 'topic', 'level', 'description','public',)
inlines = [ ActivityInline, GrammarInline, ]
forms.py에서 는 인라인 형태가 그것을이
django.jQuery('.ui-autocomplete-input').live('formsetadd', function(e, row) {
console.log('Formset add!');
console.log($(row));
});
같은 이벤트 formsetadd 인라인 바인딩하지만/inlines.js 장고 /있는 contrib/관리/미디어 /의 JS에서 을 찾고 시도 이러한 트리거가 장고의 버전 1.3.1에없는 것 같습니다. 인라인을 추가 할 때 트리거되는 이벤트에 바인딩해야합니까? 유사한 케이스가 여기 https://bitbucket.org/mlavin/django-selectable/issue/31/dynamically-added-forms 이지만 formset plugin을 사용하고 있습니다. bindSelectable (행)을 관리자 인라인에 사용할 수 있습니까?
:
프로젝트 소스는 동적 표 인라인을 사용하는 작업 예제가 실려있다. 어떤 버전을 실행하고 있습니까? –