рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд░рдХреЗ рдлреЙрд░реНрдо рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ (рдпрдбреНрдбрд╛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдорд╛рди рд╣реИ):
#views.py
def operator_search(request):
operators = Operator.objects.all()
f = OperatorFilter(request.GET, initial={'operator_city':'yadda'}, queryset=Operator.objects.all())
return render(request, 'vendors/operator_search.html', {'filter':f, 'operators':operators})
#forms.py
class OperatorFilter(django_filters.FilterSet):
operator_city = django_filters.CharFilter(initial="yadda")
class Meta:
model = Operator
рди рддреЛ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред django-filters рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд┐рд▓реНрдЯрд░, рдлрд╝рд┐рд▓реНрдЯрд░рд╕реЗрдЯ рдФрд░ рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрд╛рдзреНрдп рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореБрдЭреЗ QueryDict рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛ рдФрд░ рдЙрд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░рд╕реЗрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓реАрдирд░ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдХрд╛рдордХрд╛рдЬ рдХрд╛ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рдЦреЛрдЬреЛрдВ рдХреЛ рдЕрдлрдЧрд╛рдирд┐рд╕реНрддрд╛рди рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдиреЗ рд╕реЗ рдердХ рдЧрдП рд╣реИрдВ :)
рдирдорд╕реНрддреЗ @chromakey - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╢реНрди рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлреЙрд░реНрдо рдХрд╛ рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдлрд╝рд┐рд▓реНрдЯрд░рд╕реЗрдЯ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдореИрдВ рдЖрдкрдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рддреЛ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
initial = {'operator_city':'yadda'}
initial.update(request.GET)
f = OperatorFilter(initial, ...)
рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд░реНрддреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдВ рдФрд░ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛рдПрдВред рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВрдиреЗ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХреА рдЦреЛрдЬ рдХреА рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕рдордЭ рд▓рд┐рдпрд╛ (рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ):
####### WARNING: this is a hack to enable initial filter field selection in django-filters########
# Create a mutable QueryDict object, default is immutable
initial = QueryDict('active_study=True', mutable=True)
# QueryDict update works different than normal dictionary update. Refer to docs.
initial.update(request.GET)
# Place the hacked, mutable QueryDict to the FilterSet.
filter = StudyFilter(initial, queryset=Study.objects.all())
рдЪреЙрдЗрд╕рдлрд┐рд▓реНрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
empty_label=None, null_value=<default-value>, null_label=<default-label>
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЪреЙрдЗрд╕рдлрд┐рд▓реНрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
empty_label=None, null_value=<default-value>, null_label=<default-label>