The format of your django url tag is incorrect.
You are not using a namespace in your urls.py file, but you are naming one in your url tag:
<form method="POST" action="{% url 'admin-chat:{{data.email}}' %}">
In a django url tag, the text before the colon ':' is used specifically (and only) to name a namespace. Your tag, as currently written, expects your urls.py file to look like this:
app_name = 'admin-chat'
url_patterns = [
path('admin-chat/<str:merchant_email>/', views.admin_chat, name='admin-chat'),
]
Since you are not using a namespace like above, you cannot reference a namespace in your url tag. I see that you've named your URL pattern 'admin-chat', so it seems you are simply confused about the proper syntax of the django url tag. When you put 'admin-chat' before : inside the tag, django does not read that as your named URL, it reads it as a namespace.
(Note: the above example code is meant only to show what your current tag is looking for in your urls.py; in actuality, you would never want to have a namespace that is identical to a named url, as seen above).
A django url tag has the format: {% url 'some-url-name' optional_arguments %}. Therefore, you can simply provide your named url pattern, admin-chat, in quotes, and after that, add the additional argument(s) you are passing to the url:
<form method="POST" action="{% url 'admin-chat' data.email %}">
This is the correct format for a django url tag with an (optional) argument included. Note that when adding the argument, you do not need to nest a django variable tag (double curly braces) inside a django template tag, as you've done in your original code.