Как связать модель с текущим пользователем при сохранении в django - PullRequest
0 голосов
/ 13 января 2020

Я новичок в django, извините за этот простой вопрос. Я создаю веб-приложение, используя django. и я хочу сохранить текущего вошедшего в систему пользователя, пока он / она автоматически создает новый объект. Я хочу реализовать эту функцию в пользовательской панели администратора.

class Post(models.Model):
   user = models.ForeginKey(...)
   .............

Так что здесь я хочу заполнить поле пользователя автоматически.

1 Ответ

1 голос
/ 13 января 2020

Вы можете напрямую ссылаться на модель пользователя.

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

class Post(models.Model):
    user = models.ForeginKey(User, on_delete=models.CASCADE)

Или вы можете использовать настройку AUTH_USER_MODEL (это рекомендуется)

from django.conf import settings
from django.db import models

class Post(models.Model):
    user = models.ForeginKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

Внутри вашего generi c создать просмотрите, что затем вы можете связать request.user с объектом внутри метода form_valid, как описано здесь Доступ к request.user в generi c на основе классов. Представление CreateView для установки поля FK в Django

class PostView(CreateView):

    def form_valid(self, form):
        obj = form.save(commit=False)
        obj.user = self.request.user
        obj.save()        
        return http.HttpResponseRedirect(self.get_success_url())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...