prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Error in pizza admin related to title_en
  Sentry Issue: [CONCREXIT-9W](https://sentry.io/organizations/thalia/issues/2692657224/?referrer=github_integration)
  
  ```
  FieldError: Related Field got invalid lookup: title_en
  (16 additional frame(s) were not displayed)
  ...
    File "django/db/models/sql/query.py", line 1393, in add_q
      clause, _ = self._add_q(q_object, self.used_aliases)
    File "django/db/models/sql/query.py", line 1412, in _add_q
      child_clause, needed_inner = self.build_filter(
    File "django/db/models/sql/query.py", line 1265, in build_filter
      return self._add_q(
    File "django/db/models/sql/query.py", line 1412, in _add_q
      child_clause, needed_inner = self.build_filter(
    File "django/db/models/sql/query.py", line 1339, in build_filter
      raise FieldError('Related Field got invalid lookup: {}'.format(lookups[0]))
  ```
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `website/pizzas/admin.py`
  Content:
  ```
  1 """Registers admin interfaces for the pizzas module."""
  2 from django.conf import settings
  3 from django.contrib import admin
  4 from django.core.exceptions import PermissionDenied
  5 from django.forms import Field
  6 from django.urls import reverse, path
  7 from django.utils.html import format_html
  8 from django.utils.translation import gettext_lazy as _
  9 
  10 from events import services
  11 from events.services import is_organiser
  12 from payments.widgets import PaymentWidget
  13 from pizzas import admin_views
  14 from utils.admin import DoNextModelAdmin
  15 from .models import FoodOrder, FoodEvent, Product
  16 
  17 
  18 @admin.register(Product)
  19 class ProductAdmin(admin.ModelAdmin):
  20     """Manage the products."""
  21 
  22     list_display = ("name", "price", "available")
  23     list_filter = ("available", "restricted")
  24     search_fields = ("name",)
  25 
  26 
  27 @admin.register(FoodEvent)
  28 class FoodEventAdmin(admin.ModelAdmin):
  29     """Manage the pizza events."""
  30 
  31     list_display = ("title", "start", "end", "notification_enabled", "orders")
  32     date_hierarchy = "start"
  33     exclude = ("end_reminder",)
  34     search_fields = [f"event__title_{l[0]}" for l in settings.LANGUAGES]
  35     autocomplete_fields = ("event",)
  36 
  37     def notification_enabled(self, obj):
  38         return obj.send_notification
  39 
  40     notification_enabled.short_description = _("reminder")
  41     notification_enabled.admin_order_field = "send_notification"
  42     notification_enabled.boolean = True
  43 
  44     def has_change_permission(self, request, obj=None):
  45         """Only allow access to the change form if the user is an organiser."""
  46         if obj is not None and not services.is_organiser(request.member, obj.event):
  47             return False
  48         return super().has_change_permission(request, obj)
  49 
  50     def has_delete_permission(self, request, obj=None):
  51         """Only allow access to delete if the user is an organiser."""
  52         if obj is not None and not services.is_organiser(request.member, obj.event):
  53             return False
  54         return super().has_delete_permission(request, obj)
  55 
  56     def orders(self, obj):
  57         url = reverse("admin:pizzas_foodevent_details", kwargs={"pk": obj.pk})
  58         return format_html('<a href="{url}">{text}</a>', url=url, text=_("Orders"))
  59 
  60     def get_urls(self):
  61         urls = super().get_urls()
  62         custom_urls = [
  63             path(
  64                 "<int:pk>/details/",
  65                 self.admin_site.admin_view(
  66                     admin_views.PizzaOrderDetails.as_view(admin=self)
  67                 ),
  68                 name="pizzas_foodevent_details",
  69             ),
  70             path(
  71                 "<int:pk>/overview/",
  72                 self.admin_site.admin_view(
  73                     admin_views.PizzaOrderSummary.as_view(admin=self)
  74                 ),
  75                 name="pizzas_foodevent_overview",
  76             ),
  77         ]
  78         return custom_urls + urls
  79 
  80 
  81 @admin.register(FoodOrder)
  82 class FoodOrderAdmin(DoNextModelAdmin):
  83     """Manage the orders."""
  84 
  85     list_display = (
  86         "food_event",
  87         "member_first_name",
  88         "member_last_name",
  89         "product",
  90         "payment",
  91     )
  92 
  93     fields = (
  94         "food_event",
  95         "member",
  96         "name",
  97         "product",
  98         "payment",
  99     )
  100 
  101     def formfield_for_dbfield(self, db_field, request, obj=None, **kwargs):
  102         """Payment field widget."""
  103         field = super().formfield_for_dbfield(db_field, request, **kwargs)
  104         if db_field.name == "payment":
  105             return Field(
  106                 widget=PaymentWidget(obj=obj), initial=field.initial, required=False,
  107             )
  108         return field
  109 
  110     def save_model(self, request, obj, form, change):
  111         """You can only save the orders if you have permission."""
  112         if not is_organiser(request.member, obj.food_event.event):
  113             raise PermissionDenied
  114         return super().save_model(request, obj, form, change)
  115 
  116     def has_view_permission(self, request, order=None):
  117         """Only give view permission if the user is an organiser."""
  118         if order is not None and not is_organiser(
  119             request.member, order.food_event.event
  120         ):
  121             return False
  122         return super().has_view_permission(request, order)
  123 
  124     def has_change_permission(self, request, order=None):
  125         """Only give change permission if the user is an organiser."""
  126         if order is not None and not is_organiser(
  127             request.member, order.food_event.event
  128         ):
  129             return False
  130         return super().has_change_permission(request, order)
  131 
  132     def has_delete_permission(self, request, order=None):
  133         """Only give delete permission if the user is an organiser."""
  134         if order is not None and not is_organiser(
  135             request.member, order.food_event.event
  136         ):
  137             return False
  138         return super().has_delete_permission(request, order)
  139
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/website/pizzas/admin.py b/website/pizzas/admin.py
  --- a/website/pizzas/admin.py
  +++ b/website/pizzas/admin.py
  @@ -1,5 +1,4 @@
   """Registers admin interfaces for the pizzas module."""
  -from django.conf import settings
   from django.contrib import admin
   from django.core.exceptions import PermissionDenied
   from django.forms import Field
  @@ -31,7 +30,7 @@
       list_display = ("title", "start", "end", "notification_enabled", "orders")
       date_hierarchy = "start"
       exclude = ("end_reminder",)
  -    search_fields = [f"event__title_{l[0]}" for l in settings.LANGUAGES]
  +    search_fields = ("event__title",)
       autocomplete_fields = ("event",)
   
       def notification_enabled(self, obj):
  
verification_info: {"golden_diff": "diff --git a/website/pizzas/admin.py b/website/pizzas/admin.py\n--- a/website/pizzas/admin.py\n+++ b/website/pizzas/admin.py\n@@ -1,5 +1,4 @@\n \"\"\"Registers admin interfaces for the pizzas module.\"\"\"\n-from django.conf import settings\n from django.contrib import admin\n from django.core.exceptions import PermissionDenied\n from django.forms import Field\n@@ -31,7 +30,7 @@\n     list_display = (\"title\", \"start\", \"end\", \"notification_enabled\", \"orders\")\n     date_hierarchy = \"start\"\n     exclude = (\"end_reminder\",)\n-    search_fields = [f\"event__title_{l[0]}\" for l in settings.LANGUAGES]\n+    search_fields = (\"event__title\",)\n     autocomplete_fields = (\"event\",)\n \n     def notification_enabled(self, obj):\n", "issue": "Error in pizza admin related to title_en\nSentry Issue: [CONCREXIT-9W](https://sentry.io/organizations/thalia/issues/2692657224/?referrer=github_integration)\n\n```\nFieldError: Related Field got invalid lookup: title_en\n(16 additional frame(s) were not displayed)\n...\n  File \"django/db/models/sql/query.py\", line 1393, in add_q\n    clause, _ = self._add_q(q_object, self.used_aliases)\n  File \"django/db/models/sql/query.py\", line 1412, in _add_q\n    child_clause, needed_inner = self.build_filter(\n  File \"django/db/models/sql/query.py\", line 1265, in build_filter\n    return self._add_q(\n  File \"django/db/models/sql/query.py\", line 1412, in _add_q\n    child_clause, needed_inner = self.build_filter(\n  File \"django/db/models/sql/query.py\", line 1339, in build_filter\n    raise FieldError('Related Field got invalid lookup: {}'.format(lookups[0]))\n```\n", "before_files": [{"content": "\"\"\"Registers admin interfaces for the pizzas module.\"\"\"\nfrom django.conf import settings\nfrom django.contrib import admin\nfrom django.core.exceptions import PermissionDenied\nfrom django.forms import Field\nfrom django.urls import reverse, path\nfrom django.utils.html import format_html\nfrom django.utils.translation import gettext_lazy as _\n\nfrom events import services\nfrom events.services import is_organiser\nfrom payments.widgets import PaymentWidget\nfrom pizzas import admin_views\nfrom utils.admin import DoNextModelAdmin\nfrom .models import FoodOrder, FoodEvent, Product\n\n\n@admin.register(Product)\nclass ProductAdmin(admin.ModelAdmin):\n    \"\"\"Manage the products.\"\"\"\n\n    list_display = (\"name\", \"price\", \"available\")\n    list_filter = (\"available\", \"restricted\")\n    search_fields = (\"name\",)\n\n\n@admin.register(FoodEvent)\nclass FoodEventAdmin(admin.ModelAdmin):\n    \"\"\"Manage the pizza events.\"\"\"\n\n    list_display = (\"title\", \"start\", \"end\", \"notification_enabled\", \"orders\")\n    date_hierarchy = \"start\"\n    exclude = (\"end_reminder\",)\n    search_fields = [f\"event__title_{l[0]}\" for l in settings.LANGUAGES]\n    autocomplete_fields = (\"event\",)\n\n    def notification_enabled(self, obj):\n        return obj.send_notification\n\n    notification_enabled.short_description = _(\"reminder\")\n    notification_enabled.admin_order_field = \"send_notification\"\n    notification_enabled.boolean = True\n\n    def has_change_permission(self, request, obj=None):\n        \"\"\"Only allow access to the change form if the user is an organiser.\"\"\"\n        if obj is not None and not services.is_organiser(request.member, obj.event):\n            return False\n        return super().has_change_permission(request, obj)\n\n    def has_delete_permission(self, request, obj=None):\n        \"\"\"Only allow access to delete if the user is an organiser.\"\"\"\n        if obj is not None and not services.is_organiser(request.member, obj.event):\n            return False\n        return super().has_delete_permission(request, obj)\n\n    def orders(self, obj):\n        url = reverse(\"admin:pizzas_foodevent_details\", kwargs={\"pk\": obj.pk})\n        return format_html('<a href=\"{url}\">{text}</a>', url=url, text=_(\"Orders\"))\n\n    def get_urls(self):\n        urls = super().get_urls()\n        custom_urls = [\n            path(\n                \"<int:pk>/details/\",\n                self.admin_site.admin_view(\n                    admin_views.PizzaOrderDetails.as_view(admin=self)\n                ),\n                name=\"pizzas_foodevent_details\",\n            ),\n            path(\n                \"<int:pk>/overview/\",\n                self.admin_site.admin_view(\n                    admin_views.PizzaOrderSummary.as_view(admin=self)\n                ),\n                name=\"pizzas_foodevent_overview\",\n            ),\n        ]\n        return custom_urls + urls\n\n\n@admin.register(FoodOrder)\nclass FoodOrderAdmin(DoNextModelAdmin):\n    \"\"\"Manage the orders.\"\"\"\n\n    list_display = (\n        \"food_event\",\n        \"member_first_name\",\n        \"member_last_name\",\n        \"product\",\n        \"payment\",\n    )\n\n    fields = (\n        \"food_event\",\n        \"member\",\n        \"name\",\n        \"product\",\n        \"payment\",\n    )\n\n    def formfield_for_dbfield(self, db_field, request, obj=None, **kwargs):\n        \"\"\"Payment field widget.\"\"\"\n        field = super().formfield_for_dbfield(db_field, request, **kwargs)\n        if db_field.name == \"payment\":\n            return Field(\n                widget=PaymentWidget(obj=obj), initial=field.initial, required=False,\n            )\n        return field\n\n    def save_model(self, request, obj, form, change):\n        \"\"\"You can only save the orders if you have permission.\"\"\"\n        if not is_organiser(request.member, obj.food_event.event):\n            raise PermissionDenied\n        return super().save_model(request, obj, form, change)\n\n    def has_view_permission(self, request, order=None):\n        \"\"\"Only give view permission if the user is an organiser.\"\"\"\n        if order is not None and not is_organiser(\n            request.member, order.food_event.event\n        ):\n            return False\n        return super().has_view_permission(request, order)\n\n    def has_change_permission(self, request, order=None):\n        \"\"\"Only give change permission if the user is an organiser.\"\"\"\n        if order is not None and not is_organiser(\n            request.member, order.food_event.event\n        ):\n            return False\n        return super().has_change_permission(request, order)\n\n    def has_delete_permission(self, request, order=None):\n        \"\"\"Only give delete permission if the user is an organiser.\"\"\"\n        if order is not None and not is_organiser(\n            request.member, order.food_event.event\n        ):\n            return False\n        return super().has_delete_permission(request, order)\n", "path": "website/pizzas/admin.py"}], "after_files": [{"content": "\"\"\"Registers admin interfaces for the pizzas module.\"\"\"\nfrom django.contrib import admin\nfrom django.core.exceptions import PermissionDenied\nfrom django.forms import Field\nfrom django.urls import reverse, path\nfrom django.utils.html import format_html\nfrom django.utils.translation import gettext_lazy as _\n\nfrom events import services\nfrom events.services import is_organiser\nfrom payments.widgets import PaymentWidget\nfrom pizzas import admin_views\nfrom utils.admin import DoNextModelAdmin\nfrom .models import FoodOrder, FoodEvent, Product\n\n\n@admin.register(Product)\nclass ProductAdmin(admin.ModelAdmin):\n    \"\"\"Manage the products.\"\"\"\n\n    list_display = (\"name\", \"price\", \"available\")\n    list_filter = (\"available\", \"restricted\")\n    search_fields = (\"name\",)\n\n\n@admin.register(FoodEvent)\nclass FoodEventAdmin(admin.ModelAdmin):\n    \"\"\"Manage the pizza events.\"\"\"\n\n    list_display = (\"title\", \"start\", \"end\", \"notification_enabled\", \"orders\")\n    date_hierarchy = \"start\"\n    exclude = (\"end_reminder\",)\n    search_fields = (\"event__title\",)\n    autocomplete_fields = (\"event\",)\n\n    def notification_enabled(self, obj):\n        return obj.send_notification\n\n    notification_enabled.short_description = _(\"reminder\")\n    notification_enabled.admin_order_field = \"send_notification\"\n    notification_enabled.boolean = True\n\n    def has_change_permission(self, request, obj=None):\n        \"\"\"Only allow access to the change form if the user is an organiser.\"\"\"\n        if obj is not None and not services.is_organiser(request.member, obj.event):\n            return False\n        return super().has_change_permission(request, obj)\n\n    def has_delete_permission(self, request, obj=None):\n        \"\"\"Only allow access to delete if the user is an organiser.\"\"\"\n        if obj is not None and not services.is_organiser(request.member, obj.event):\n            return False\n        return super().has_delete_permission(request, obj)\n\n    def orders(self, obj):\n        url = reverse(\"admin:pizzas_foodevent_details\", kwargs={\"pk\": obj.pk})\n        return format_html('<a href=\"{url}\">{text}</a>', url=url, text=_(\"Orders\"))\n\n    def get_urls(self):\n        urls = super().get_urls()\n        custom_urls = [\n            path(\n                \"<int:pk>/details/\",\n                self.admin_site.admin_view(\n                    admin_views.PizzaOrderDetails.as_view(admin=self)\n                ),\n                name=\"pizzas_foodevent_details\",\n            ),\n            path(\n                \"<int:pk>/overview/\",\n                self.admin_site.admin_view(\n                    admin_views.PizzaOrderSummary.as_view(admin=self)\n                ),\n                name=\"pizzas_foodevent_overview\",\n            ),\n        ]\n        return custom_urls + urls\n\n\n@admin.register(FoodOrder)\nclass FoodOrderAdmin(DoNextModelAdmin):\n    \"\"\"Manage the orders.\"\"\"\n\n    list_display = (\n        \"food_event\",\n        \"member_first_name\",\n        \"member_last_name\",\n        \"product\",\n        \"payment\",\n    )\n\n    fields = (\n        \"food_event\",\n        \"member\",\n        \"name\",\n        \"product\",\n        \"payment\",\n    )\n\n    def formfield_for_dbfield(self, db_field, request, obj=None, **kwargs):\n        \"\"\"Payment field widget.\"\"\"\n        field = super().formfield_for_dbfield(db_field, request, **kwargs)\n        if db_field.name == \"payment\":\n            return Field(\n                widget=PaymentWidget(obj=obj), initial=field.initial, required=False,\n            )\n        return field\n\n    def save_model(self, request, obj, form, change):\n        \"\"\"You can only save the orders if you have permission.\"\"\"\n        if not is_organiser(request.member, obj.food_event.event):\n            raise PermissionDenied\n        return super().save_model(request, obj, form, change)\n\n    def has_view_permission(self, request, order=None):\n        \"\"\"Only give view permission if the user is an organiser.\"\"\"\n        if order is not None and not is_organiser(\n            request.member, order.food_event.event\n        ):\n            return False\n        return super().has_view_permission(request, order)\n\n    def has_change_permission(self, request, order=None):\n        \"\"\"Only give change permission if the user is an organiser.\"\"\"\n        if order is not None and not is_organiser(\n            request.member, order.food_event.event\n        ):\n            return False\n        return super().has_change_permission(request, order)\n\n    def has_delete_permission(self, request, order=None):\n        \"\"\"Only give delete permission if the user is an organiser.\"\"\"\n        if order is not None and not is_organiser(\n            request.member, order.food_event.event\n        ):\n            return False\n        return super().has_delete_permission(request, order)\n", "path": "website/pizzas/admin.py"}]}