Как данные связаны с конкретным идентификатором пользователя? - PullRequest
1 голос
/ 04 января 2012

Я новичок в Django и Python.Я сделал формы входа, но мне нужно знать.Как я могу связать содержимое страницы с пользователем.Например: это сайт вопросов и ответов.Когда вы вошли в систему, отображается страница профиля с вопросами, которые пользователь задавал ранее.Как данные связаны с конкретным идентификатором пользователя в модели?Можно ли это сделать с помощью объекта User?Если да, не могли бы вы привести простой пример со сценарием?

Спасибо.

1 Ответ

1 голос
/ 04 января 2012

Все, что «принадлежит» пользователю, должно иметь ForeignKey или ManyToManyField (в зависимости от того, принадлежит ли объект одному или нескольким пользователям) на User.Затем вы можете либо отфильтровать модель на основе User:

SomeModel.objects.filter(user=some_user)
# where `user` is the name of your foreign key field

, либо получить доступ к модели через пользователя через обратные отношения, например:

class SomeModel(models.Model):
    ...
    user = models.ForeignKey(User)

# Later ...

some_user.somemodel_set.all()

Второй метод более типичен, поскольку у вас обычно есть пользователь уже из запроса, поэтому, на ваш взгляд, вы просто должны сделать:

somemodels = request.user.somemodel_set.all()

Чтобы получить все SomeModel, которыепринадлежат текущему вошедшему в систему пользователю.

...