#python #django
Вопрос:
У меня есть простая модель, в которой пользователь пишет некоторый текст и сохраняет его, мне нужно добавить текущего пользователя в этот созданный объект. Прямо сейчас у меня есть такой код, где пользователя можно выбрать вручную, как мне сделать это автоматически? Я знаю о user=self.request.user, но я не знаю, как использовать его в моделях. Извините, если этот вопрос глупый, я новичок в Django
class SomeText(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) keyword = models.TextField(verbose_name='Add your text here')
Комментарии:
1. Как вы аутентифицируете пользователя? Он должен пройти аутентификацию перед добавлением текста или получением информации для входа нового пользователя при создании нового текста.
2. Что такое «текущий пользователь»? где именно вы пытаетесь создать экземпляр этого класса? что вы конкретно пробовали?
3. Как вы создаете
SomeText
объекты?4. Извините, что я не вдавался в подробности, опять же, я новичок. К тому же английский мне не родной. Итак, текущий пользователь — я имел в виду того, кто вошел в систему. Так что да, пользователь, прошедший аутентификацию, должен быть автоматически добавлен в новый объект. Я создаю объект SomeText через страницу администратора в браузере(?)
Ответ №1:
Для автоматического назначения пользователя пользователю необходимо войти в систему. Если пользователь уже вошел в систему, вы можете попробовать приведенный ниже код
В вашем views.py
from django.http import HttpResponse from .models import SomeText def assign(request): text=request.POST['text'] #It will coming from your HTML form (front end) user=reuqest.user obj=SomeText() obj.user=user obj.text=text obj.save() return HttpResponse("Text added!")
Комментарии:
1. Пожалуйста, поднимите голос, если это полезно. Спасибо