Как создавать запросы от пользователя к администратору?

Для создания запросов от пользователя к администратору в Django можно использовать модель "Message" и функциональность встроенных форм и представлений.

1. Создайте модель "Message". Она будет представлять сообщение пользователя и будет содержать поля, такие как "отправитель", "адресат", "тема", "текст" и "дата создания". Например:

from django.db import models
from django.contrib.auth.models import User

class Message(models.Model):
    sender = models.ForeignKey(User, on_delete=models.CASCADE)
    recipient = models.ForeignKey(User, on_delete=models.CASCADE)
    subject = models.CharField(max_length=256)
    text = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

2. Создайте форму для создания сообщения. В Django есть встроенные формы, которые могут помочь в этом. Например, вы можете использовать ModelForm:

from django import forms
from .models import Message

class MessageForm(forms.ModelForm):
    class Meta:
        model = Message
        fields = ('recipient', 'subject', 'text')

3. Создайте представление для создания и отображения формы. В Django вы можете использовать функциональные или классовые представления. В данном случае, представление будет отображать форму и сохранять сообщение в базу данных:

from django.shortcuts import render, redirect
from .forms import MessageForm

def create_message(request):
    if request.method == 'POST':
        form = MessageForm(request.POST)
        if form.is_valid():
            message = form.save(commit=False)
            message.sender = request.user
            message.save()
            return redirect('inbox')  # перенаправляем пользователя на страницу входящих сообщений
    else:
        form = MessageForm()
    return render(request, 'create_message.html', {'form': form})

4. Создайте шаблон "create_message.html", который будет отображать форму:

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Отправить</button>
</form>

5. Настройте URL-шаблоны для представления. В файле urls.py вашего приложения добавьте следующие строки:

from django.urls import path
from .views import create_message

urlpatterns = [
    path('message/create/', create_message, name='create_message'),
]

Теперь пользователи смогут отправлять сообщения администратору, используя созданную форму и представление. Полученные сообщения будут сохраняться в базе данных и могут быть отображены на странице входящих сообщений (inbox), которую вы можете создать вместе с соответствующим представлением и шаблоном.