1
我的问题的关键是以下几点。我有一个领域,它继承了Selet2场Django的形式:不同的用户获得相同的搜索结果
class Select2ModelField(MyBaseSelect2ModelField, AutoModelSelect2Field):
'''
Select2ModelField, that uses ajax to get autocomplete options.
Should be used by default.
'''
widget = Select2ChoiceWidget
class LimitedDepartmentChoiceField(Select2ModelField):
def __init__(self, *args, **kwargs):
super(LimitedDepartmentChoiceField, self).__init__(*args, **kwargs)
然后,我用它在我的形式,在views.py创建这个领域,因为这个领域的内容依赖于请求数据:
form = RepresentativeCreateEditForm(request.POST)
form.fields['department'] = LimitedDepartmentChoiceField(label=u'Department',
queryset=Department.objects.filter(
id__in=all_deps_ids))
的问题是,当两个不同的用户在同一时间进入这个页面,它们都具有的选项相同的列表,正是其中一个用户,谁第一个加载页面,有。而这种行为是不正确的,他们应该有不同的选项列表。
请问谁能告诉我如何解决这个问题?
不幸的是,这并没有帮助。错误是: 类型错误: 'Select2ChoiceWidget' 对象不是可调用 '类Select2ChoiceWidget(MySelect2BaseWidget,AutoHeavySelect2Widget): pass' 这里: '类MySelect2BaseWidget(对象): #there去了很多的实现代码' – Vladimir 2014-10-03 13:11:41
那么也许只用'self.widget = Select2ChoiceWidget'来试试吧?它看起来像'Select2ChoiceWidget'已经是一个东西的实例,而不是一个类。 – 2014-10-03 13:47:33
好吧,也没有工作。(也许,解决方案不是在Django的某个地方,但在某些地方在选择2包参数? – Vladimir 2014-10-03 15:13:50