Задать вопрос

Django, модели. Как сделать ссылку в поле модели на значение поля другой модели?

Структура моделей:

class Profile (models.Model):
    user = models.ForeignKey(MyUser)
    university = models.CharField(max_length=512)
    #...
    
class Stream (models.Model):
    #...

class Enty (models.Model):
    stream = models.ForeignKey(Stream)
    entry = (max_length=512)
    ...


Структура полностью отвечает возложенным на нее задачам, а именно добавление, редактирование и удаление записей. Это все на взаимодействии юзера с бд.

Но есть еще зада анализа администратором записей Entry в связки с полем university. То есть администратор через специальный интерфейс делает запрос к записям Enty по некоторым stream и для него не имеет никакого значения личность юзера и связь между его записями. Предметом рассмотрения является только связь stream - entry - university.
то есть
class Enty (models.Model):
    stream = models.ForeignKey(Stream)
    entry = (max_length=512)
    university = #ссылка на Profile.university
    ...

возможно ли осуществить эту ссылку?

Да можно сделать поле university в Entry текстовым и каждый раз при создании записи Enty записывать туда значение university из Profile, но это как то совсем не круто.
  • Вопрос задан
  • 4549 просмотров
Подписаться 3 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@alz
Не очень понятно, ссылку на что вы хотите получить в вашей схеме, если у вас отношение user - profile "один ко многим". Но даже если бы в Profile поле user было бы OneToOneField, я вот так с ходу не уверен, что через джанговский орм можно за один запрос догнать university из Profile. На чистом SQL можно было бы написать запрос, сджойнив Entry и Profile по user_id.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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