Для создания запросов от пользователя к администратору в 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), которую вы можете создать вместе с соответствующим представлением и шаблоном.