我正在使用Django过滤器应用在我的网站上构建搜索。这是代码:
class PropertyFilter(django_filters.FilterSet):
city = django_filters.ModelMultipleChoiceFilter(queryset=City.objects.all(), widget = CheckboxSelectMultiple)
trade_type = django_filters.ModelMultipleChoiceFilter(queryset=Trade.objects.all(), widget = CheckboxSelectMultiple)
class Meta:
model = Property
fields = ['city', 'trade_type']
Run Code Online (Sandbox Code Playgroud)
问题在于,当用户标记两个城市时,Django过滤器仅通过最后一个URL参数(此案例中的城市2)过滤对象:
http://example.org/lt/list/city=1&city=2
Models.py:
class City(models.Model):
name = models.CharField(max_length=250, verbose_name=_('Name'))
Run Code Online (Sandbox Code Playgroud)
也许我做错了什么?
我正在尝试使用Ajax提交我的压缩表单集.当请求不是ajax时,代码可以正常工作.但每当我尝试实现Ajax时,我都会收到ValidationError:[u'ManagementForm数据丢失或被篡改']
我的观点:
def App(request):
lectures = Lecture.objects.all()
TopicFormSet = modelformset_factory(Topic, extra=0)
SummaryFormSet = modelformset_factory(Summary, extra=0)
tquery = Topic.objects.all()
squery = Summary.objects.all()
#saving formsets:
if request.method == 'POST' and request.is_ajax():
t_formset = TopicFormSet(request.POST)
s_formset = SummaryFormSet(request.POST) #formset instances
if t_formset.is_valid() and s_formset.is_valid():
t_formset.save() and s_formset.save()
zipped = zip(t_formset.forms, s_formset.forms) #saving them with new data
else:
return HttpResponse("not valid formsets, dude") # for testing purposes
else: #request=GET
t_formset = TopicFormSet(queryset = tquery)
s_formset = SummaryFormSet(queryset = squery)
zipped = zip(t_formset.forms, s_formset.forms) …Run Code Online (Sandbox Code Playgroud)