2012-01-04 5 views
1

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

спасибо.

+0

Можете ли вы опубликовать несколько примеров кода, который вы написали? Что вы пытаетесь достичь с помощью этого приложения? –

+0

Это можно сделать, используя поле ForeignKey, которое укажет на объект User. Это слишком простая вещь, я бы рекомендовал вам прочитать документы, например [здесь] (https://docs.djangoproject.com/en/1.3/intro/overview/) и [учебник] (https: //docs.djangoproject .com/о/1.3/интро/tutorial01 /). – demalexx

ответ

1

Все, что «принадлежит» к пользователю, должны либо иметь 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() 

T o получить все SomeModel s, которые принадлежат зарегистрированному в данный момент пользователю.

+0

Спасибо Крис Пратт. Это именно то, что мне нужно. – rnk