POST, DELETE method записать в таблицу
Подскажите, как записать в таблицу методы post, delete Например, есть модель users. И модель tags (связанная по many to many с users). На выходе нужно получить в третей таблицы такие данные:
user_id -> 1
tag_slug -> slug_name
action -> post
date_time -> 2023-11-07
или такие:
user_id -> 1
tag_slug -> slug_name
action -> delete
date_time -> 2023-11-07
Затык в action
Для того чтобы записать данные в таблицу, используя методы POST и DELETE, вам следует создать соответствующие записи в вашей базе данных в зависимости от того, какие действия вы хотите сохранить (POST или DELETE). В Django вы можете использовать модели и представления (views) для выполнения такой задачи.
Предположим, у вас есть модели User и Tag, и вы хотите записывать действия POST и DELETE в таблицу с полями user_id, tag_slug, action, и date_time. Вот как вы можете это сделать:
- Создайте модель для записей о действиях (например, UserAction):
from django.db import models
class UserAction(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    tag = models.ForeignKey(Tag, on_delete=models.CASCADE)
    action = models.CharField(max_length=6, choices=[('post', 'POST'), ('delete', 'DELETE')])
    date_time = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return f'{self.user.username} {self.action} {self.tag.slug} on {self.date_time}'
- Создайте представления для обработки POST и DELETE запросов и создания записей UserAction. В представлениях вы должны проверять метод запроса и создавать записи в таблицеUserActionв зависимости от типа запроса.
from django.http import JsonResponse
from .models import UserAction
def post_action(request, user_id, tag_slug):
    # Получите пользователя и метку по user_id и tag_slug
    user = User.objects.get(id=user_id)
    tag = Tag.objects.get(slug=tag_slug)
    # Создайте запись POST-действия
    UserAction.objects.create(user=user, tag=tag, action='post')
    return JsonResponse({'message': 'POST action recorded'})
def delete_action(request, user_id, tag_slug):
    # Получите пользователя и метку по user_id и tag_slug
    user = User.objects.get(id=user_id)
    tag = Tag.objects.get(slug=tag_slug)
    # Создайте запись DELETE-действия
    UserAction.objects.create(user=user, tag=tag, action='delete')
    return JsonResponse({'message': 'DELETE action recorded'})
- Настройте маршруты для ваших представлений, чтобы их можно было вызвать с помощью POST и DELETE запросов.