2010-07-06 3 views
2

Я использую Джанго встроенного модуля contrib.auth и имеют настройки внешнего ключа отношение к Пользователю, когда «пост» Добавлен:Внешний ключ к таблице User в Джанго

class Post(models.Model): 
    owner = models.ForeignKey('User') 
    # ... etc. 

Теперь, когда он приходит к фактическому добавлению Почты, я не уверен, что поставить в поле владельца, прежде чем вызвать save(). Я ожидал чего-то вроде id в сеансе пользователя, но заметил, что у пользователя нет атрибута user_id или id. Какие данные я должен извлечь из сеанса аутентификации пользователя, чтобы заполнить поле владельца? Я попытался посмотреть, что происходит в таблице базы данных, но еще не слишком подробно остановился на настройке sqlite.

Спасибо за любую помощь ...

+0

Я хотел бы знать, как добавить пользователя в поле Foreignkey в моей модели. Не уверен, если я получу ответ ниже. –

ответ

4

Вы хотите обеспечить «Пользователь» объект. То есть то же самое, что вы получите от User.objects.get (pk = 13).

Если вы используете компоненты аутентификации Django, пользователь также прикрепляется к объекту запроса, и вы можете использовать его непосредственно из вашего кода вида:

request.user 

Если пользователь не аутентифицирован, тогда Django вернет экземпляр django.contrib.auth.models.AnonymousUser. (за http://docs.djangoproject.com/en/dev/ref/request-response/#attributes)

+0

Я использую decorator @login_required перед этим, поэтому, надеюсь, пользователь всегда должен быть аутентифицирован. Совсем не то, что я знаю из PHP ... спасибо за помощь. –

+0

Это будет сделано - все, что действительно необходимо, это «django.contrib.auth» в INSTALLED_APPS в вашем файле настроек. – heckj

Смежные вопросы