Что такое точно Грабли?

Начиная с дизайна вашей модели, если ваша система имеет критерии, согласно которым у одного пользователя есть только один профиль. Затем установите uid в модели профиля как OnetoOneField, чтобы вы могли легко получить доступ к account_type с помощью User.objects.filter(id=request.user.id).profile.account_type.

Иначе, если ваша система имеет критерии, согласно которым один пользователь может иметь несколько профилей. Затем вам сначала нужно получить доступ к его профилям и выбрать конкретный профиль, добавив дополнительный фильтр, затем вы получите доступ к account_type:

User.objects.filter(id=request.user.id).profile_set.all() выдаст вам весь профиль пользователя.

User.objects.filter(id=request.user.id).profile_set.get(your_filter) дает вам определенный профиль пользователя.

User.objects.filter(id=request.user.id).profile_set.get(your_filter).account_type предоставляет вам доступ к типу учетной записи конкретного пользователя.

Здесь описание отношений один-к-одному

Описание внешних (много к одному) ключей здесь

75
задан Keith Pinson 26 December 2013 в 16:49
поделиться

3 ответа

Попробуйте статью Martin Fowler о Граблях для получения дополнительной информации:

http://martinfowler.com/articles/rake.html

Его преамбула:

Грабли являются языком сборки, подобным в цели сделать и муравей. Как делают и муравей, это - Предметно-ориентированный язык, в отличие от тех двух, это - внутренний DSL, запрограммированный на языке Ruby. В этой статье я представляю грабли и описываю некоторые интересные вещи, которые вышли из моего использования граблей для создания этого веб-сайта: модели зависимости, синтезируемые задачи, сделанные на заказ стандартные программы и отладка сценария сборки.

Существует больше информации, доступной на или связано от домашней страницы проекта также:

http://rake.rubyforge.org/

53
ответ дан David M 24 November 2019 в 11:36
поделиться

Грабли являются реализацией основанного на зависимости декларативного программирования на Языке программирования Ruby. В основном Грабли к Ruby, что Делает, к C, с заметными различиями, которые Делают, внешний DSL, в то время как Грабли являются внутренним DSL.

11
ответ дан Jörg W Mittag 24 November 2019 в 11:36
поделиться

Грабли позволяют Вам выполнить код Ruby через хороший API пространства имен. Примером являются грабли db:migrate. Можно выполнить задачи автоматически прежде и после других задач. Это - все.

8
ответ дан August Lilleaas 24 November 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: