svicer |
|
Темы:
11
Сообщения:
856
Участник с: 27 июля 2014
|
Пишу маленькое веб приложение, но столкнулся с проблемой: 1. У материала есть пользователь, он пишется через Foreignkey, и является создателем материала; 2. НО надо еще создать пару полей, где можно выбрать из списка зарегистрированных пользователей, которые не зависят от этого материала и не наследуются им; Вопрос: как сделать еще два поля выбора пользователя, без подобного костыля?:
class Post(models.Model): P.S. Если впарю куплю пиваса:-) |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
Э-э... А зачем список-то? User.objects.all() и так возвращает список объектов... А в шаблоне можно уже забубенить цикл для выбора конкретного пользователя (передать в шаблон список и прогнать его через цикл) |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
А что означаетsvicer? Если пользователь должен быть зарегистрирован - тоже установить связь ForeignKey... Может я что-то неправильно понял? |
svicer |
|
Темы:
11
Сообщения:
856
Участник с: 27 июля 2014
|
Anton8830Проблема: 1. Если я ставлю поле дважжды models.ForeignKey("auth.user") - выходит ошибка и правильно так как один user один материал(создатель) 2. Если я ставлю поле models.ForeignKey(User...)(с импортом соответсвуещего модуля django с settings и т.д.) та же ошибка, но и из нее еще вытекает и следующая... 3. Если я костыляю костылями user_choice() то после миграций на новую базу данных(чистую), django-admin(manage.py) не создает таблицу auth и полей для нее, поскольку уходит в вечный цикл из-за подобного костыля(импорта модуля User). Если создать таблицу auth с дефолтными полями - можно даже создать супер пользователя и все потом хорошо; до этого django-admin валится с руганью на отсутствия этих полей в создаваемой базе данных, поскольку user_choice(), использующая метод User.objects.all(), на нее ссылается. Но мне надо, дабы приложение ("носилось") с компа на комп в не зависимости от конфигурации и выбора типа базы данных.... А выбирать оператора и мотажера из зарегеных пользователей. |
svicer |
|
Темы:
11
Сообщения:
856
Участник с: 27 июля 2014
|
Anton8830я очень плохо объясняю свои проблемы - у меня их очень мало:-; Практики не хватает, |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
В моём случае: СУБД - mysql Т. е. СУБД позволяет создать в таблице два поля, являющиеся внешним ключом на одно и то же поле другой таблицы. Сейчас с django поэкспериментирую...
|
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
Все просто... Если установить ForeignKey без параметров:
Вот работающий пример (first_app/models.py): Тогда в БД создаётся именно то, что нужно.И да: Тыц |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
Проверено на sqlite3 |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Что за эпические костыли вы нагородили?
|
svicer |
|
Темы:
11
Сообщения:
856
Участник с: 27 июля 2014
|
lampslave Огромное спасибо помогло, но надо было еще дописать related_name="+"... |