Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 5

Связь модели с моделью User Django

22.04.2014, 14:09. Показов 6528. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, сделал проект админки, создал свою модель:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class NetworkChange(models.Model):
    """
    Сетевые изменения
    """
    user = models.ForeignKey(User, unique=True, verbose_name=u'пользователь')
    status = models.IntegerField(choices=STATUS_CHOICES, verbose_name='Статус')
    author = models.CharField(verbose_name='Автор', max_length=30)
    approve = models.CharField(verbose_name="Утвердил", max_length=30)
    comment = models.TextField(verbose_name='Комментарий')
    data = models.DateTimeField(verbose_name='Дата', auto_now_add=True)
 
    def __unicode__(self):
        return '[%s] %s' % (self.id, self.author)
 
    class Meta:
        db_table = 'network_change'
        verbose_name_plural = 'Сетевые изменения'
        verbose_name = 'Сетевое изменение'
        app_label = 'NetworkChange'
как сделать связь моей модели со стандартной моделью авторизации. Я хочу, чтобы при создании например сетевого изменения мне в списке авторов выводились пользователи из стандартной модели моей админки?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2014, 14:09
Ответы с готовыми решениями:

Django: сделать связь между моделью и системой аутентификации
Вопрос на первый взгляд простой, но меня ввел в ступор Задача: сделать связь между моделью и системой аутентификации. Т.е....

Работа с моделью User
Должно быть 4 вида пользователя: Администратор, диспетчер, юр. лицо - используют стандартную систему авторизации и аутентификации...

Связь сущностей с реляционной моделью данных, DAO
Здравствуйте. Есть две SQL-таблицы: product и producer(фото). Подскажите, пожалуйста, как правильно их представить в коде? На данный...

4
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
22.04.2014, 23:43
mkurs, не очень понял что надо сделать.
1) Связь между моделя у вас есть ForeignKey.
2) Ваша модуль, а что собственно вам надо привязать к авторизации? Ну если речь идёт например о проверки доп параметров, при авторизации, то свой бэкенд пилите. тут
3) Ну я не знаю, может быть вам сигналы пригодяться. тут
1
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 5
23.04.2014, 07:57  [ТС]
Все, спасибо за ответ, решил проблему переписав код вот так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class NetworkChange(models.Model):
    """
    Сетевые изменения
    """
 
    status = models.IntegerField(choices=STATUS_CHOICES, verbose_name='Статус')
    author = models.ForeignKey(User, verbose_name='Автор', db_column='author', related_name='author', max_length=30)
    approve = models.ForeignKey(User, verbose_name="Утвердил", related_name='approve', max_length=30,
                                db_column='approve', limit_choices_to={'is_superuser': 1})
    comment = models.TextField(verbose_name='Комментарий')
    data = models.DateField(verbose_name='Дата', auto_now_add=True)
 
    def __unicode__(self):
        return unicode(self.author)
 
    class Meta:
        db_table = 'network_change'
        verbose_name_plural = 'Сетевые изменения'
        verbose_name = 'Сетевое изменение'
До редактирования так же выдавало ошибку, что некоторого поля не существовало
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
23.04.2014, 22:49
mkurs, так у вас все поля обязательные, покажите как создаёте.
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
13.06.2014, 15:00
Возникла та же проблема. Необходимо добавить в свою модель связь со стандартной моделью пользователя. Как я понял все решается добавлением внешнего ключа. Вот код. Куда добавить нужно я понял. Что именно - увы но не смог.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-
 
from django.db import models
 
 
class Credit(models.Model):
    client = models.ForeignKey(#вот сюда судя по всему нужно что то добавить)
    summ = models.IntegerField(default=0)
    term = models.IntegerField(default=0)
    startdate = models.DateTimeField('date start')
 
    def __unicode__(self):
        return self.client.name + ' ' + self.summ
Буду очень рад вашим ответам.

Добавлено через 12 часов 52 минуты
Вопрос решился. Нужно было дописать
Python
1
from django.contrib.auth.models import User
и указать данный класс в качестве внешнего ключа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2014, 15:00
Помогаю со студенческими работами здесь

Расширение модели User. "got not an unexpected keyword argument 'user'"
Здравствуйте, пытаюсь расширить дефолтную модель User следующим образом. class Profile(models.Model): user =...

Установка в Проекте View связи с Моделью без установки пакетов зависимости Модели
Тема создана переносом постов из темы https://www.cyberforum.ru/wpf-silverlight/thread2563725.html Usaga, я всё разбираюсь с EF. Со...

Какие ОС ставят на электронные книги фирмы texet начиная с модели TB-116 заканчивая моделью TB-176 ?
И если не трудно, подскажите как под них писать софт, особенности и прочее

Расширение профиля User в Django
Добрый всем день! Как лучше расширить профиль юзера в джанго? Варианты: через наследование или ассоциацию (OneToOne). Через наследование...

Как исправить неверный вывод request.user в django?
Доброго времени суток, при создании авторизации отказался от велосипеда LoginView, так как переопределение и переделывание под то, что мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru