Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Django-admin søgning giver HTTP 500 med ikke-Latin1 tegn #240

Open
Mortal opened this issue Oct 11, 2018 · 2 comments
Open

Django-admin søgning giver HTTP 500 med ikke-Latin1 tegn #240

Mortal opened this issue Oct 11, 2018 · 2 comments

Comments

@Mortal
Copy link
Contributor

Mortal commented Oct 11, 2018

Når man besøger eks. https://taagekammeret.dk/admin/idm/profile/?q=%E2%81%B8

OperationalError at /admin/idm/profile/
(1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'")

Vi kan evt. lave en workaround ved at udvide alle vores ModelAdmin med en søge-metode der returnerer qs.empty() hvis søgestrengen indeholder ikke-Latin1 tegn. Her er en skitse:

class Latin1Search(admin.ModelAdmin):
    def get_search_results(self, request, queryset, search_term):
        try:
            search_term.encode('latin1')
        except UnicodeEncodeError:
            return queryset.empty()
        return super().get_search_results(request, queryset, search_term)


# Eksisterende ModelAdmin subclasses skal bruge Latin1Search som mixin.
# Dvs. i idm/admin.py:
class ProfileAdmin(admin.ModelAdmin, Latin1Search):
    # ... samme implementation som før

admin.site.register(Profile, ProfileAdmin)


# Hvor vi før brugte vanilla ModelAdmin skal vi bruge Latin1Search.
# Dvs. i uniprint/admin.py:
admin.site.register(Document, Latin1Search)
@neic
Copy link
Member

neic commented Oct 11, 2018

Er det grundlæggende problem ikke at databasen er latin1 og ikke utf8 (eller utf8mb4)? Se også #199.

@Mortal
Copy link
Contributor Author

Mortal commented Oct 11, 2018

Er det grundlæggende problem ikke at databasen er latin1 og ikke utf8 (eller utf8mb4)?

Jo, det er korrekt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants