Вопросы с тегами [django-models]

1

голосов
1

ответ
63

Просмотры

Django REST Как фильтровать через косую черту?

Я использую Django REST на API. Мои модели: класс Регион (MPTTModel): Имя = models.CharField (MAX_LENGTH = 50, уникальный = True) родитель = TreeForeignKey ( 'Я', нуль = True, пусто = True, related_name = 'дети', on_delete = models.CASCADE ) класс Категория (MPTTModel): имя = models.CharField (max_length = 50, уникальный = True) родитель = TreeForeignKey ( 'я', нуль = True, пусто = True, related_name = 'ребенок', on_delete = models.CASCADE) класс Ad (models.Model): идентификатор = models.IntegerField (primary_key = True, пустой = True) название = models.CharField (max_length = 30, help_text = 'заголовок объявления', db_column = 'данные') date_create = models.DateTimeField ( auto_now = True, help_text = 'Дата создания') описание = models.TextField (max_length = 300) = область TreeForeignKey (область, пустой = True, нуль = True, идентификатор ' 'объявление', 'ребенок') класс RegionSerializer (serializers.ModelSerializer): дети = RecursiveField (allow_null = True, требуется = False, многие = True класс Meta): модель = область поля = ( 'имя',' идентификатор ' 'дети') views.py: класс AdViewSet (viewsets.ModelViewSet):. QuerySet = Ad.objects.all () order_by (' - ') date_create serializer_class = AdSerializer как я сейчас пишу urls.py, views.py , так что я могу фильтровать через слэш по регионам и категориям? Например, HTTP: // локальный: 8000 / {область} / {категория} /. Я буду рад за любые советы и жаль в моем английском модель = область поля = ( 'имя', 'идентификатор', 'дети') views.py: класс AdViewSet (viewsets.ModelViewSet). QuerySet = Ad.objects.all () order_by ( '- date_create') serializer_class = AdSerializer как я сейчас пишу urls.py, views.py, так что я могу фильтровать через слэш по регионам и категориям? Например, HTTP: // локальный: 8000 / {область} / {категория} /. Я буду рад за любые советы и жаль в моем английском модель = область поля = ( 'имя', 'идентификатор', 'дети') views.py: класс AdViewSet (viewsets.ModelViewSet). QuerySet = Ad.objects.all () order_by ( '- date_create') serializer_class = AdSerializer как я сейчас пишу urls.py, views.py, так что я могу фильтровать через слэш по регионам и категориям? Например, HTTP: // локальный: 8000 / {область} / {категория} /. Я буду рад за любые советы и жаль в моем английском
user9922491
1

голосов
0

ответ
265

Просмотры

Django postgres jsonfield filter error: Unsupported lookup

Я использую Джанго (версия 2.0.6) и Postgres (версия 9.6). У меня есть таблица sp_users. Модель имеет следующие поля: { "имя": "а", "возраст": 30, "пол": "мужчина", "адрес": { "город": "Gotham", "государство": "хуг", «страна»: «MnO»}} Я пытаюсь фильтровать таблицу sp_users в зависимости от города, используя следующий код: SpUsers.objects.filter (address__city = «Gotham») здесь SpUsers является модель, которая отображается в таблице выше. Я получаю следующее сообщение об ошибке: Неподдерживаемый поиск «город» для JSONField или присоединиться на поле не допускается. В модели я определил поле адреса следующим образом: адрес = JSONField (нуль = True, пусто = False, по умолчанию = ДИКТ) Что я здесь отсутствует? Как решить эту проблему? Я могу фильтровать на основе поля, как имя и возраст. Код модели выглядит следующим образом: класс SpUsers (models.Model): user_id = models.AutoField (primary_key = True) имя = models.CharField (max_length = 255, пусто = False) возраст = models.IntegerField (по умолчанию = 0) пол = models.CharField (max_length = 255, пусто = False) = адрес JSONField (нуль = True, пусто = False, по умолчанию = ДИКТ) защиту __str __ (Я): возвращение класса self.user_id Meta: 'sp_users' db_table =
sagarpatil232
1

голосов
0

ответ
130

Просмотры

Джанго реверс инлайн для администратора

У меня есть пользовательский класс, который ссылается внешний ключ по классу Student, родительский класс и классного. Класс пользователя (): пропуск класса Parent (): пользователь = models.ForeignKey (Пользователь) класс Student (): пользователь = models.ForeignKey (Пользователь) класс Учитель (): пользователь = models.ForeignKey (Пользователь) Я хотел бы сделать UserInline и имеют ParentAdmin TeacherAdmin и т.д. конечно, DjangoAdmin требует, чтобы пользователь будет один, который имеет ForeignKey для родителей, учителей, студент и т.д., однако мне было интересно, если бы мы могли потенциально каким-то образом повернуть его вспять или структуру его, что я мог бы просто создать студент или преподаватель во время включения UserInline
Brandon Nguyen
1

голосов
0

ответ
50

Просмотры

Джанго имя пользователя в модели пользователя не может быть повторен

Я пытаюсь создать пользователей в модели Джанго django.contrib.auth.models.User, но когда я использую имя, которое уже существует в базе данных он даст мне ошибку, как: {имя пользователя: [ "Пользователь с таким именем уже существует ".]} в качестве ответа HTTP Как я могу отключить это в Django, так что я могу иметь множество пользователей с одинаковым именем пользователя Спасибо всем.
Rodwan Bakkar
1

голосов
0

ответ
39

Просмотры

Как хранить стоячую таблицу в Django

У меня есть веб-сайт прогнозирования Кубка мира, который написан с использованием рамки Django. Каждый раз, когда пользователь запрашивает, чтобы увидеть стоячую таблицу конкретного конкурса, standing_stable вид смотрит все пользователей, связанных с этим конкурсом, а затем загружает все связанные игры, а также прогнозы пользователей, а затем в циклю сравнивает предсказанный результат с фактическим результатом и присваивает оценки, основанные на системе правил. По моему опыту, когда у меня есть более 10 пользователей подписались на конкурс, который имеет по крайней мере 30 игр или больше, то standing_table вид становится очень медленно и занимает более 5-10 секунд, чтобы загрузить таблицу. Я понимаю, что так, как я делаю это не эффективно, и я предпочел бы сделать математику раз и навсегда после того, как каждая игра закончилась, и пользователи могут быть отнесены к тем прекомпилированных стоящих столов. Я не знаю, однако, как хранить такую ​​таблицу в качестве модели Django. Вот мой взгляд show_standing @login_required Защиту show_standing (запрос, конкурс): конкурс = request.user.contests.filter (имя = Конкурс) .all () [0] пользователи = contest.users.all () строки = [] для пользователя пользователей: exact_groupstage = utils.get_correct_predictions (пользователь, конкурс, 'точный', 'групповом') goal_difference_groupstage = utils.get_correct_predictions (пользователь, конкурс, 'целенаправленная разница', 'групповом') winner_only_groupstage = utils.get_correct_predictions (пользователь, конкурс 'победитель только', 'групповом') exact_playoffs = utils.get_correct_predictions (пользователь, конкурс, 'точные', 'плей-офф') goal_difference_playoffs = utils.get_correct_predictions (пользователь, конкурс, 'целенаправленная разница', '
Blademaster
1

голосов
0

ответ
24

Просмотры

Как проверить детали ForeignKey перед созданием объекта в форме?

В проекте Django я работаю есть модель под названием курс и содержит множество объектов присваивания. Это часть models.py: Класс Assignment (models.Model): курс = models.ForeignKey (курс, related_name = 'get_assignments') имя = models.CharField (max_length = 200) = IPAddress models.CharField (нуль = True , mAX_LENGTH = 500) publish_type = models.CharField (max_length = 50, по умолчанию = "Запланированные") type_of_lab = models.CharField (max_length = 50, по умолчанию = "Лаборатория") timeduration = models.DurationField (по умолчанию = timedelta (в секундах = 0 ), нуль = True) late_duration = models.DurationField (по умолчанию = timedelta (в секундах = 0), нуль = True) exam_group_id = models.CharField (max_length = 50, нуль = True) serial_number = models.IntegerField () program_language = модели. CharField (max_length = 32) продолжительность = модель. DurationField (по умолчанию = timedelta (секунды = 0), нуль = True) freezing_duration = models.DurationField (по умолчанию = timedelta (секунды = 0), нулевой = True) срок = models.DateTimeField (нуль = True) freezing_deadline = models.DateTimeField ( нуль = True) publish_on = models.DateTimeField (нуль = 'истина') bulk_add = models.FileField (max_length = 800, upload_to = assignment_bulk_upload_path, нуль = True) При создании задания с помощью формы, форма проверяется с помощью некоторых функций. Это часть forms.py: класс AssignmentForm (forms.Form): assignment_type = forms.BooleanField (требуется = False, виджет = forms.HiddenInput ()) = имя forms.CharField (метка = "Назначение Name", виджет = формы .TextInput (ATTRS = { 'заполнитель': 'Назначение Имя (200 символов или менее)', 'MaxLength': 200})) TypeOf = (( 'Lab', this_course) поднять forms.ValidationError ( 'Это назначение уже существует в этом курсе.), за исключением Assignment.DoesNotExist: обратный проход self.cleaned_data [ «имя»] Как вы можете видеть при проверке AssignmentForm я хочу использовать имя курса, в котором она создается. Таким образом, в функции clean_bulk_add, я написал course1 = self.this_course. Затем он показывает AttributeError объект «AssignmentForm» не имеет атрибута «this_course». Итак, как получить имя курса, в котором его назначение будет создан? ] Как вы можете видеть при проверке AssignmentForm я хочу использовать имя курса, в котором она создана. Таким образом, в функции clean_bulk_add, я написал course1 = self.this_course. Затем он показывает AttributeError объект «AssignmentForm» не имеет атрибута «this_course». Итак, как получить имя курса, в котором его назначение будет создан? ] Как вы можете видеть при проверке AssignmentForm я хочу использовать имя курса, в котором она создана. Таким образом, в функции clean_bulk_add, я написал course1 = self.this_course. Затем он показывает AttributeError объект «AssignmentForm» не имеет атрибута «this_course». Итак, как получить имя курса, в котором его назначение будет создан?
E.Praneeth
1

голосов
3

ответ
52

Просмотры

Как я могу отобразить комментарии ниже соответствующей должности в домашней странице

я хочу, чтобы реализовать что-то вроде фба делает как отображая все соответствующие комментарии ниже соответствующих сообщений в домашней странице model.py от импортных моделей django.db из django.contrib.auth.models импортировать класс User Post (models.Model): пост = models.CharField (max_length = 500) изображение = models.ImageField (upload_to 'profile_image' =) пользователь = models.ForeignKey (пользователь, on_delete = 'models.CASCADE') создано = models.DateTimeField (auto_now_add = True) = обновляемые модели. DateTimeField (auto_now = True) Защита __str __ (Я): возвращение класс self.post Комментарий (models.Model): пользователь = models.ForeignKey (пользователь, on_delete = 'models.CASCADE') пост = models.ForeignKey (Post, нуль = Правда, on_delete = 'models.CASCADE') комментарий = models.TextField (), созданный = модель.DateTimeField (auto_now_add = True) обновляется = models.DateTimeField (auto_now = True) Защита __str __ (Я): возвращение self.comment views.py из django.views.generic импорта TemplateView из django.shortcuts импортирует рендер, перенаправлять, get_object_or_404 от Джанго. contrib.auth.models импорт пользователя из home.forms импортирует HomeForm, Home, CommentForm из home.models импорта Post, ImagePost, Комментарий класс HomeView (TemplateView): TEMPLATE_NAME = 'главный / home.html' Защиты получить (я, запрос): форма = HomeForm () form1 = CommentForm () сообщений = Post.objects.filter (пользователь = request.user) .order_by ( '- создано') комментарии = Comment.objects.all () пользователи = User.objects.exclude (идентификатор = request.user.id) Args = { 'форма': форма, 'сообщений: сообщения, '' пользователей: пользователей, 'Form1':form1, 'Комментарии': комментарии,} вернуть визуализации (запрос, self.template_name, арг) Защиту пост (я, запрос): form1 = CommentForm () текст = '', если request.method == 'POST': сформировать = HomeForm (request.POST, request.FILES), если form.is_valid (): пост = form.save (фиксации = False) post.user = request.user post.save () = текст form.cleaned_data [ 'сообщение'] = форма HomeForm () form1 = CommentForm () возвращает редирект ( 'дом: дом') защиту cmnt (я, запрос): текст = '' form1 = CommentForm (), если request.method == 'POST': form1 = CommentForm (запрос. POST, post.id), если form.is_valid ():комментарий = form.save (фиксации = False) comment.user = request.user comment.post = request.post comment.save () текст = form.cleaned_data [ 'комментарий'] = form1 CommentForm () форма = HomeForm возврат () перенаправления ( 'Home: дом') Args = { 'форма': форма, 'текст': текст, 'Form1': Form1} возвращение визуализации (запрос, self.template_name, арг) home.html {% распространяется «base.html '%} {% статическая нагрузка%} {% блок тела%} {% Home csrf_token%} {{form.post}} {{form.image}} Отправить {{текст}} {% на пост в сообщениях%} { { сообщение.сообщение}} Опубликовано {{post.user.get_full_name}} на {{post.created}} {% csrf_token%} {{form1.comment}} Отправить {% для комментариев в комментариях%} {%, если comment.post_id = = post.id%} {{comment.comment}} прокомментировал {{comment.user.get_full_name}} на {{comment.created}} {% ENDIF%} {% ENDFOR%} {% ENDFOR%} {% ENDBLOCK %} с помощью моего Джанго администратора я могу назначить комментарии к соответствующему сообщению и отобразить его я нахожу трудности для назначения комментария post_id с urls.py идентификатора сообщения от django.conf.urls импортировать URL из django.urls импортировать путь от. просмотров импорта из home.views импорта HomeView app_name = «дома»urlpatterns = [путь ( '', HomeView.as_view (), имя = 'дом'),]
Prince Nihith
1

голосов
1

ответ
109

Просмотры

Доступ к времени, когда было обновлено поле (модель Django)

Мне нужно создать систему, в которой пользователь должен изменить свой пароль каждый «х» количество дней. Мне удалось добиться этого, сохранив UTC временной метки, представляющее время, когда пользователь создал / изменил свой пароль. Мой вопрос, вместо сохранения метки времени в базе данных, можно получить временную метку, представляющее время, когда поле было изменено через несколько встроенных функции Джанго? Таким образом, я мог получить доступ, когда был последний раз, когда пользователь обновил свой пароль без добавления выделенного поля в модели, чтобы сохранить метку времени в нем.
Ta.Da
1

голосов
0

ответ
44

Просмотры

Counting overlapping days in django

In my django project, I store user's vacation: class VacationRequest(BaseModel): requested_by = models.ForeignKey(User, related_name='vacation', verbose_name='User') start = models.DateField(__('Start')) end = models.DateField(__('End')) I need a feature to generate report. Reports are generated for selected range of days: class Report(BaseModel): company = models.ForeignKey(Company, related_name='reports') department = models.ForeignKey(Department, verbose_name=__('Department'), related_name='reports', null=True, blank=True) title = models.CharField(verbose_name=__('Title'), null=True, blank=False, max_length=32) start = models.DateField(__('Start')) end = models.DateField(__('End')) csv = models.FileField(__('CSV'), null=True, blank=True, upload_to=report_upload_path, max_length=256, storage=reports_storage) xls = models.FileField(__('XLS'), null=True, blank=True, upload_to=report_upload_path, max_length=256, storage=reports_storage) pdf = models.FileField(__('PDF'), null=True, blank=True, upload_to=report_upload_path, max_length=256, storage=reports_storage) def generate_files(self): headers = ['First name', 'Last name', 'Department', 'vacation days'] department_kwarg = {'userdata__department': self.department} if self.department else {} vacation_filter = models.Q(vacation__status=2, vacation__start__gte=self.start, vacation__end__lte=self.end) # what should I change here? users = User.objects.filter(company=self.company, **department_kwarg).annotate( days_used=models.Sum(models.Case(models.When( vacation_filter, then=models.F('vacation__archive_net_days') ), output_field=models.IntegerField(), default=0)) ).annotate( days_left=models.F('userdata__vacations_days_in_year') - models.F('userdata__used_vacations_days') ).values_list('first_name', 'last_name', 'userdata__department__title', 'days_used', 'days_left') self._generate_csv(users, headers) self._generate_pdf(users, headers) self._generate_xls(users, headers) it works almost fine, however, I want to calculate overlaping days also. For example, when user's vacation is between 10 July and 20 July and in my report I set start date to 11 July it will return 0 days but it should calculate days between. This is because vacation_filter = models.Q(vacation__status=2, vacation__start__gte=self.start, vacation__end__lte=self.end) -- it uses vacation__start__gte - which is not correct, I am not sure what should I use here How can I achieve this?
dease
1

голосов
1

ответ
42

Просмотры

Получить ссылочный объект Multipla слоев Джанго

Я работаю с Django, у меня есть проблемы с получением предметов, которые прикованы ссылки. Здесь мой Models класс Environment (models.Model): Имя = models.CharField (max_length = 200, уникальный = True) Класс Element (models.Model): среда = models.ForeignKey (окружающая среда, on_delete = models.CASCADE, related_name = 'GroupPre') класс AlarmActive (models.Model): элемент = models.ForeignKey (Element, on_delete = models.CASCADE, related_name = 'AlarmActivePre') Моя задача проста, я должен принести все среды, которые имеют AlarmActive. Как я могу добиться этого? Спасибо!
1

голосов
1

ответ
39

Просмотры

How do I share a child foreign table amongst to parent tables in Django models

CASCADE) Телефон = models.CharField (max_length = 25) Тип = models.CharField (max_length = 25) Primary = models.BooleanField (по умолчанию = False) класс член (models.Model): FederationID = models.FloatField (уникальный = True) UserId = models.ForeignKey (Пользователь, on_delete = models.CASCADE) высота = models.IntegerField (пустой = True, нуль = True) глаз = models.CharField (пустой = True, нуль = True) волосы = models.CharField (пусто = Правда, нуль = True) био = models.TextField () класса Unit (models.Model): Name = models.CharField (max_length = 255) Халл = models.CharField (max_length = 20) Тип = models.CharField (max_length = 20 ) Я пытаюсь использовать одну таблицу адресов, чтобы имитировать как член и адресные блоки. Я прошу, если это правильный путь идти об этом? Есть ли более DRY версия делает это правильно. Обратите внимание на модель телефона, а также. Тот же вопрос. Благодарю.
arcee123
1

голосов
0

ответ
46

Просмотры

Джанго: Как установить количество для каждого элемента в ManyToManyField

Привет, ребята, я пытаюсь сделать приложение кадастре для инструментов в моей мастерской. Я хочу, чтобы иметь возможность знать, какие инструменты назначены на то, что набор инструментов, и кто является то, что ящик для инструментов назначен. У меня есть таблица под названием Элементы этой таблицы получает в наследство от других таблиц, макияж инструмент т.е. (Для того, чтобы создать режущий инструмент, у меня есть таблица, которая называется Cortadores, который наследует поля из п. Cortadores имеет поля, которые являются уникальными для режущих инструментов и предметов имеет поля которые являются общими для всех инструментов) у меня также есть таблицы: Carritos и Empleados. Что им пытается сделать, это построить таблицу Carritos тх имеет все инструменты, возложенные на него и Empleados, что тележка присвоенные. мой models.py класс Carritos (models.Model): no_carrito = models.CharField (max_length = 3, уникальный = True) empleado = models.ForeignKey (Empleados, on_delete = models.CASCADE) herramienta = модели. ManyToManyField (п) = cantidad models.PositiveIntegerField () f_creacion = models.DateTimeField (auto_now_add = True) f_actualizacion = models.DateTimeField (auto_now = True) Activo = models.BooleanField (по умолчанию = True) Класс Meta: verbose_name_plural = "Carritos" Защиту __str __ (Я): возвращение self.no_carrito я не собирался создать представление для него, я хотел, чтобы иметь возможность создавать и вносить изменения в carritos со страницы администратора. Я получаю список доступных инструментов и выбрать несколько инструментов. что я не знаю, как определить количество в инструменте Carrito имеет. то есть (если я хотел Ассинг 2 резцов к Carrito, как я мог это сделать) DateTimeField (auto_now = True) Activo = models.BooleanField (по умолчанию = True) Класс Meta: verbose_name_plural = "Carritos" Защита __str __ (Я): возвращение self.no_carrito я не собирался создать представление для него, я хотел бы быть в состоянии создавать и вносить изменения в carritos со страницы администратора. Я получаю список доступных инструментов и выбрать несколько инструментов. что я не знаю, как определить количество в инструменте Carrito имеет. то есть (если я хотел Ассинг 2 резцов к Carrito, как я мог это сделать) DateTimeField (auto_now = True) Activo = models.BooleanField (по умолчанию = True) Класс Meta: verbose_name_plural = "Carritos" Защита __str __ (Я): возвращение self.no_carrito я не собирался создать представление для него, я хотел бы быть в состоянии создавать и вносить изменения в carritos со страницы администратора. Я получаю список доступных инструментов и выбрать несколько инструментов. что я не знаю, как определить количество в инструменте Carrito имеет. то есть (если я хотел Ассинг 2 резцов к Carrito, как я мог это сделать) Я хотел, чтобы иметь возможность создавать и вносить изменения в carritos со страницы администратора. Я получаю список доступных инструментов и выбрать несколько инструментов. что я не знаю, как определить количество в инструменте Carrito имеет. то есть (если я хотел Ассинг 2 резцов к Carrito, как я мог это сделать) Я хотел, чтобы иметь возможность создавать и вносить изменения в carritos со страницы администратора. Я получаю список доступных инструментов и выбрать несколько инструментов. что я не знаю, как определить количество в инструменте Carrito имеет. то есть (если я хотел Ассинг 2 резцов к Carrito, как я мог это сделать)
victorR
1

голосов
0

ответ
44

Просмотры

Что является наиболее эффективным способом для создания записи БД в Django 2.0, не зная, если он уже существует?

Ситуация такова, что БД должна быть заполнена, но неизвестно, будет ли записи уже существуют или нет. Первичный ключ является измененным значением. Я считаю, три метода для решения этой задачи, но интересно, что является наиболее эффективной. 1. Model.objects.get_or_create () 2. Model.objects.update_or_create () 3. если не Model.objects.filter () существует ():. Model.objects.create () в соответствии с Django документы, методы 1 и 2 внутренне использовать ЭСПЦ (проще попросить прощения, чем разрешения), в то время как техника 3 использует менее привилегированное LBYL (Посмотрите, прежде чем прыгать). Тем не менее, методика 3 избегает извлечения или сохранения (без изменений) объект, если он уже существует. Является ли присвоение достаточно дорогостоящим, чтобы желать избежать или же стоимость поиска перевешивает остальные действия? Следовать за:
Ron
1

голосов
1

ответ
21

Просмотры

Джанго не может прочитать мое регулярное выражение

я сделать приложение под названием видео, и она работает правильно, но я хочу сделать раздвоенную страницу с видео страницы, которая выглядит как URL этого видео / 1,2,3,4, .... но я получаю ошибку 404, которая говорит: Используя URLconf, определенный в newproject.urls, Django пробовал эти шаблоны URL, в следующем порядке: 1. видео / [имя = 'индекс'] 2. видео / ^ $ [имя =»(P [0-9] +?) подробнее »] 3. админ / текущий путь, видео / 1 /, не соответствует ни одному из них. я думаю, что ошибка была в предыдущем втором URL и я думаю, что Джанго не может прочитать мое регулярное выражение. что мое видео / URLs: от django.urls импорта пути из django.conf.urls импортировать URL из. импорт просмотров urlpatterns = [путь ( '', views.index, имя = 'индекс'), URL (г '^ (? P [0-9] +) $', views.detail, имя = 'деталь'), ] спасибо читать
Ahmad
1

голосов
3

ответ
75

Просмотры

Лучший способ для фильтрации (). (Обновление) в Джанго при обработке нулевых строк?

Есть хороший способ фильтрации (). Обновление () в Django при обработке нулевых строк? Допустим, я хочу работать:. Dogs.objects.filter (шум = «гав») обновление (animal_name = «собака») Это бросает и ошибку, если Dogs.objects.filter (шум = «гав») возвращает нулевой результат. Теперь я могу делать: собаки = Dogs.objects.filter (шум = «гав»), если LEN (собаки)> 0: dogs.update (animal_name = «собака») Но это только кажется, немного грязный, все более эффективные способы сделать этот? Что-то вроде:. Dogs.objects.filter (шум = 'гав') update_if_rows (animal_name = 'собака')
superdee
1

голосов
0

ответ
30

Просмотры

DJANGO: AUTO ADD СООТВЕТСТВУЮЩЕГО FOREIGN KEY VALUE IN CREATE VIEW

Я Allready создал CreatView используя ExamPaper модель и добавил ссылку на него, чтобы добавить вопросы. Что я хочу, чтобы каждый раз, когда я добавляю вопросы поле экзамена получает назначение на этот вопрос. views.py класс ExamCreateView (CreateView): модель = ExamPaper template_name = "exam_new.html" поля = "__all__" класс ExamQuestionsView (CreateView): модель = ExamQuestions поле = "вопрос", "знаки", template_name = "exam_ques_new.html" Я могу получить форму для обоих, но в ExamQuestionView я должен выбрать экзамен из всего списка.
ABHISHEK TIWARI
1

голосов
1

ответ
155

Просмотры

Динамическое обновление полей в Джанго

Когда я создаю новый sesid в сессии мне нужно все курсы, чтобы добавить к sesid в регистрации модели. Я создаю систему управления результатом использования Джанго. То, что я хочу сделать, это создать сеанс (это делается), то автоматически все курсы от курса модели будут в модели сеанса (не нужно добавлять по отдельности), а затем показать страницу, которая позволяет добавлять партию к добавленным курсам. После представления всех студенты соответствующей партии будут добавлены к курсу и, таким образом, сессии и перенаправить куда-то, чтобы позволить пользователю назначить каждый курс к конкретному учителю каждый из студентов имеет несколько оценок поле для покрытия присвоенным учителем результата будет рассчитываются и сохраняются в базе данных после ввода из таблицы (лучше в качестве импортируемого файла Excel) до сих пор, я сделал это: от импортных моделей django.db от Джанго.
Ibrahim
1

голосов
0

ответ
371

Просмотры

Установка несколько MEDIA_URL & MEDIA_ROOT в Джанго

Я установил статический и медиа-корень, а также URL, в моем Джанго приложение следующим образом: STATIC_URL = «/ статический /» STATIC_ROOT = os.path.join (base_dir, «статический /») MEDIA_URL = «/ коралл /» MEDIA_ROOT = os.path.join (base_dir 'конфигурации / коралл /') Это работает прекрасно, но я хочу добавить еще один MEDIA_URL & MEDIA_ROOT служить файлы из / CERTS каталога / следующим образом: NEW_MEDIA_URL = '/ CERTS /' NEW_MEDIA_ROOT = os.path.join (base_dir «конфигурации / сертификаты /») есть ли способ сделать это? Я использую Django 2.0.6 и Python 3.5
Rishabh Chaudhary
1

голосов
1

ответ
68

Просмотры

Джанго: Доступ к ForeignKey полей и создание новых отношений, основанных на них

Я хочу, чтобы установить схему базы данных таким образом, что каждое сообщение знает, кто его получатели находятся в комнате, что она принадлежит и как-то хранит ли каждый член в этой комнате уже «видел» сообщение. Я имею трудное время, пытаясь понять, как я мог заставить его работать. Заранее спасибо! Ahmed
Ahmed Ishtiaque
1

голосов
1

ответ
94

Просмотры

Django-Tables2 добавить дополнительные столбцы из словаря

Прошу прощения, если этот вопрос был задан раньше, но я не мог найти мой конкретный случай использования ответил. У меня есть таблица, которая отображает основную информацию о продукте. Подробнее о продукции, таких как цена, количество продаж и количество продавцов соскабливают периодически и хранятся в отдельной таблице базы данных. Теперь я хочу, чтобы отобразить как основную информацию о продукте и соскабливают детали в одной таблице на интерфейсе с помощью tables2. Для этого я написал функцию в моей модели продукта, чтобы принести последнюю информацию и вернуть их в качестве словаря таким образом я могу использовать один вызов Accessor. # Класс models.py продукта (models.Model): created_at = models.DateTimeField (auto_now_add = True) имя = models.CharField (max_length = 256) бренд = models.ForeignKey (марка) категория = models.CharField (max_length = 128, ВЫБОР = CATEGORY_CHOICES) Защита __unicode __ (самостоятельно): productBrand = tables.Column (сбруя = Accessor ( 'brand.name'), verbose_name = 'Марка') currentRank = tables.Column (сбруя = Accessor ( 'currentRank')) Класс Meta: модель = Product ... Как теперь использовать этот словарь вернулся и разделить его на столбцы в моей таблице продукта? Есть еще один способ использования Accessor чем, как я это делаю?
AlfredoGG
1

голосов
2

ответ
68

Просмотры

Сохранение вложенных данных при помощи Джанго класса сериализатора

У меня есть данные в формате JSON, чтобы сохранить в модели Джанго. Когда я пытаюсь сохранить его, я получаю все виды ошибок, и я попытался его обойти, все безрезультатно. Пожалуйста, помогите мне, я новичок в Джанго рамки отдыха. Это те модели я вставляя в: класс OrderItemDishItem (SoftDeleteModelBase): пункт = models.ForeignKey (DishItem, on_delete = models.CASCADE) количество = models.PositiveIntegerField (по умолчанию = 1) цена = models.DecimalField (max_digits = 5, decimal_places = 2, по умолчанию = 0.00) класс OrderItem (SoftDeleteModelBase): блюдо = models.ForeignKey (тарелка, on_delete = models.CASCADE) пункты = models.ManyToManyField (OrderItemDishItem, related_name = "dish_items") = количество models.PositiveIntegerField (по умолчанию = 1 ) unit_price = models.DecimalField (max_digits = 5, decimal_places = 2, по умолчанию = 0,00) = модели Скидка DISCOUNT_AMOUNT. { "Количество": 1, "цена": 2 "пункт": 6}, { "количество": 1, "цена": 0, "элемент": 12}, { "количество": 1, "цена" : 0 "пункт": 13}, { "количество": 1, "цена": 5 "пункт": 9}], "unit_price": 22, "количество": 1, "блюдо": 2}] "total_cost": 0, "Скидка DISCOUNT_AMOUNT": 0, "discount_percent": 0} Пожалуйста, как я сохранить данные? Ошибки я получаю: Когда сериализатору передается `data` ключевого слова аргумента вы должны называть` .is_valid () `, прежде чем пытаться получить доступ к сериализованной`. data` представление. Вы должны либо вызвать `.is_valid ()` первый, или доступ к `.initial_data` вместо этого.
Lawal Abimbola
1

голосов
0

ответ
34

Просмотры

How to temporarily disable ForeignKey relationship between Django models

class Season(models.Model): """ unique season object per clothing drop """ name = models.CharField(max_length=250, unique=True) slug = models.SlugField(max_length=250, unique=True) description = models.TextField(blank=True) image = models.ImageField(upload_to='season', blank=True) season_available = models.BooleanField(default=True) class Meta: """ meta-data per season """ ordering = ('name',) verbose_name = 'season' verbose_name_plural = 'seasons' def __str__(self): return '{}'.format(self.name) Class Season, which i want to only be related to Category iff Apparel(category) class Category(models.Model): """ categories for products """ name = models.CharField(max_length=250, unique=True) slug = models.SlugField(max_length=250, unique=True) description = models.TextField(blank=True) season = models.ForeignKey(Season, on_delete=models.CASCADE) class Meta: """ meta-data per category """ ordering = ('name',) verbose_name = 'category' verbose_name_plural = 'categories' def foreign_key_controller(self): """enable foreign key relationship with specific models.""" def __str__(self): """ :return: '{}'.format.(self.name) :rtype: str """ return '{}'.format(self.name) Category class for all products, not inclusive to Apparel. class Apparel(models.Model): """ unique product per category per season """ category = models.ForeignKey(Category, on_delete=models.CASCADE) name = models.CharField(max_length=250, unique=True) slug = models.SlugField(max_length=250, unique=True) description = models.TextField(blank=True) price = models.DecimalField(decimal_places=2, max_digits=10) image = models.ImageField(upload_to='product', blank=True) stock = models.IntegerField() product_available = models.BooleanField(default=True) date_created = models.DateTimeField(auto_now_add=True) date_latest_update = models.DateTimeField(auto_now=True) here i want to create a function using if/else to disable to foreignkey relationship between Season and Category whenever the foreignkey in Category() !=Apparel. class Meta: """ meta-data for product """ ordering = ('name',) verbose_name = 'product' verbose_name_plural = 'products' def __str__(self): """ readable representation of class :return: :rtype: str """ return '{}'.format(self.name ) Basically, I only want seasons to be able to have different types of apparel. Also if you were wondering, I didn't include any other models that reference to Category besides Apparel but in the case there are such models. For example, a class called Music could have a ForeignKey relationship with Category so the foreign key relationship between category and season would be disable if Category referenced to Music. I initially wanted to just created a seperate class similar to Category but would only have a relationship with products in the shop that are not Apparel and no relationship to Season, but there should be a better way? Thanks!
Kai Lee
1

голосов
1

ответ
81

Просмотры

Несколько вариантов в Django Framework Rest

Класс ReservationSerializer (serializers.ModelSerializer): класс Meta: модель = Бронирование полей = [ 'рк', 'человек', 'дата', 'время', 'table_number', 'рестораны', 'меню'] Это мой класс сериализатору и я хочу, поле меню, чтобы быть несколько полей чекбокс ниже мой класс модели и здесь меню является ManyToManyField. Но я понял, что это не правильный путь. Класс бронирования (models.Model): человек = models.IntegerField) дата = models.DateField) время = models.TimeField () table_number = models.IntegerField () рестораны ((= models.ForeignKey ( 'sb_comp.Restraurant', on_delete = меню models.CASCADE) = models.ManyToManyField ( 'sb_comp.Menu'
Gaurav Bhagat
1

голосов
1

ответ
106

Просмотры

Джанго - Добавление полей в ModelForm, который наследует от родительского ModelForm?

ех. Модель = Foo Foo.fields (а, б, в, г) FooModelForm1 (forms.Modelform): поля = [а, b, c] и т.д. FooModelForm2 (FooModelForm1): поля = [d] Как можно видеть все 4 поля существуют в модели, но FooModelForm1 использует только три поля, в то время как я хочу FooModelForm2 включать поле [D], а также другие. В документации объясняет, вы можете исключить поля, так что я знаю, один из вариантов было бы перевернуть мои формы и включают в себя поле [d] первоначально, но мне было интересно, если обратное возможно. Я видел ответы, которые модифицирует данные Мета из FooModelForm2 но то не кажется, что работает для меня, например, как: класс Meta (FooModelForm1.Meta): поля = ReqLineForm.Meta.fields + [ «d»] решаемые Я сделал ошибку переключения форма я звоню на мой взгляд, в новой форме, в которой я унаследовал свою прежнюю форму.
K.Pardo
1

голосов
1

ответ
35

Просмотры

Использование Django ManyToMany симметричного свойства построить переходную зависимость

Можно ли использовать симметричное свойство от models.ManyToManyField, так что я могу создать переходную зависимость между записями? Например, в моем коде у меня есть: класс User (models.Model): сайт = models.ForeignKey ( 'myapp.Website') related_users = models.ManyToManyField ( 'я', related_name = 'пользователей', симметричная = True) Когда я: user_a.related_users.add (пользователь B) user_a.related_users.all () # возвращает пользователю B user_b.related_users.all () # возвращает пользователю все работает, как ожидается, здесь, отношения симметричны. Но когда я делаю: user_b.related_users.add (Пользователь) user_b.related_users.all () # возвращает пользователь A и пользователь C user_c.related_users.all () # возвращает пользователь BI хочет пользователь C вернуть пользователь A и пользователь B автоматически, потому что пользователь С пользователь в, который пользователь А, следовательно, пользователь С пользователь А тоже.
user2937998
1

голосов
1

ответ
44

Просмотры

Джанго: прочитать загруженный файл и добавить содержимое в поле TEXTAREA в модели

У меня есть модель, которая имеет filefiled для загрузки файлов DOCX (например, резюме). Я хотел бы прочитать содержимое этого файла и добавить его в поле TEXTAREA (например, опыт), так что содержимое сохраняются в базе данных. Нужна помощь в том, как идти об этом. Я знаю REQUEST.FILES, но не знаю, как собрать вместе
mooru
1

голосов
4

ответ
49

Просмотры

Добавить новое поле для моделирования

Я пытаюсь добавить внешний ключ к колонку модели Article.New: автор. название = models.CharField (max_length = 30); Описание = models.TextField (); дата = models.DateTimeField (auto_now_add = True); автор = models.ForeignKey (Пользователь, по умолчанию = None, on_delete = models.PROTECT) Byt после Migrate я получил от ошибок: OperationalError в / статьи / нет такой колонки: список articles_article.author_id статьи: Защиту article_list (requwest): статьи = Статья . .objects.all () order_by ( 'дата') возвращают визуализации (requwest, "статьи / article_list.html", { 'статьи': статьи}) шаблон: {% для статьи в статьях%} {{article.snipped} } {{article.date}} {% ENDFOR%} Я использую этот урок: урок после обновления моделей до: автор = models.ForeignKey (Пользователь,
rand_triest
1

голосов
1

ответ
35

Просмотры

Django шаблон комплекс обратного запроса Count

У меня есть эта модель, в которой руководитель является внешним ключом для команды, которая является внешним ключом для отдельного сотрудника. model.py класс Supervisor (models.Model): [поля ..] класс Team (models.Model): смещение = ... = отдел ... супервизор = models.ForeignKey (руководитель, related_name = "team_supervisor") Класс Employee (models.Model): [поля ...] команда = models.ForeignKey (команда, related_name = «employee_team») при использовании модели супервизора в целях, и в то время как цикл по каждому руководителю я могу перечислить, сколько команд супервизор управляет с утверждением: {{supervisor.team_supervisor.count}} Как я могу показать общее количество отдельных сотрудников, что работа для руководителя всей каждой команды, что руководитель имеет? Я предполагал, последующие будут работать, но это не делает: {{supervisor.team_supervisor.employee_team.
McClueless12
1

голосов
1

ответ
79

Просмотры

Как использовать «» MinValueValidator рассматривает другое поле модели?

Как я могу использовать MinValueValidator на DateField основе другого DateField на одной и той же модели класса? Пример кода: models.py код: от импортных моделей django.db из django.core.validators импортировать класс Edition (models.Model) MinValueValidator: submission_deadline = models.DateField committee_evaluation_deadline ( 'некоторый текст', help_text = 'какая-то помощь текст') = models.DateField ( 'некоторый текст', help_text = 'какая-то помощь текст', валидаторы = [MinValueValidator (submission_deadline, сообщение = 'некоторое конкретное сообщение об ошибке')]) scientific_editor_evaluation_deadline = models.DateField ( 'некоторый текст', help_text =» некоторые текст справки», валидаторы = [MinValueValidator (committee_evaluation_deadline, сообщение =„некоторое конкретное сообщение об ошибке“ Класс EditionCreateForm (forms.ModelForm): класс Meta: модель = Издание исключает = [ «журнал», «тихоход», «оценщики», «типы», «опубликовано»] Форма будет обрабатывать сохранить метод, так что все валидаторы будут срабатывать , Я предполагаю, что есть еще один простой способ сделать это, так что я не должен сделать поле путем проверки поля на форме (clean_field ()) или модели сохранения поднять especific сообщение об ошибке для каждого поля. Каждый знает, как получить значение поля DateField, что я могу использовать по определению моих моделей? Я имею в виду, я не хочу, чтобы реализовать еще одну строку кода, я просто хочу знать, если в этом случае есть способ наслаждаться встроенной MinValueValidator, что уже реализовано только ссылки на поле других моделей. Я проверил, и если я использую руку кодированного условия, для Exemple datetime.date (2018,
Charles Rockenbach
1

голосов
1

ответ
113

Просмотры

Джанго модельная задача сериализации с полями по умолчанию

Внутри моего приложения модели, я использую IntegerRangeField поля: от django.db импортных моделей от django.contrib.postgres.fields импорта IntegerRangeField из django.contrib.postgres.validators импорта RangeMinValueValidator, RangeMaxValueValidator из psycopg2.extras импортировать класс MyModel (модели NumericRange. Модель): ... поле = IntegerRangeField (по умолчанию = NumericRange (400, 600), валидаторы = [RangeMinValueValidator (1), RangeMaxValueValidator (1000)]) ... атрибуты "по умолчанию" используются только в админ-панели интерфейса, и не нужно нигде. Если добавить их после миграции, они работают гладко. Однако, если добавить их, прежде чем запускать makemigrations, я получаю сообщение: ValueError: Не могу сериализовать: NumericRange (400, 600, «[)») Есть некоторые значения Джанго не могут сериализации в миграции файлов. Я даже не хочу, значения по умолчанию, которые будут сохранены в моей базе данных PostgreSQL, я просто хочу, чтобы не удалить и вернуть их обратно каждый раз, когда я бегу makemigrations. Есть идеи? (Не работает: пользовательский объект с «ниже» и «выше» атрибуты, одно целое число, строка, кортеж) Python: 3.6.6, Django: 2.1.2, PostgreSQL: 11,0
ozz
1

голосов
2

ответ
33

Просмотры

How to get multiple values from a template and update multiple fields in a rows of thesame table in django

Я работаю на веб-сайте обработки результата, и я пытался обновить несколько полей в каждой строке таблицы. Пользователь должен иметь возможность ввод обновленного CA Score и значение ЭКЗАМЕНА Score и он должен обновить партитура и ЭКЗАМЕН значения CA о показателе каждого студента, который был представлен. Изображение страницы Кто-то задать тот же вопрос здесь пытается обновить одно поле. Я пытался работать с раствором при условии, но не смогли сделать это для моего шаблона потребности {% csrf_token%} {% для студентов в студентах%} {{student.id_number}} {% ENDFOR%} вида Защиты add_score_for (запрос, ID): если request.method == 'GET': студенты = TakenCourse.objects.filter (course__allocated_course__lecturer__pk = request.user.id) .filter (course__id = идентификатор) контекстные = { "студенты": студенты} вернуться визуализации (запрос,
AIbrahim
1

голосов
0

ответ
44

Просмотры

Как добавить класс к странице администратора в Django питона?

Я в настоящее время сделать небольшой сайт в Джанго. Когда я попытался добавить кнопку на страницу администрирования с помощью этого кода: от django.contrib импортного администратора # Зарегистрировать модели здесь. от .models импорта профиля класса profileAdmin (admin.Modeladmin): класс Meta: Model = профиль admin.site.register (профиль, profileAdmin) Вот код для добавления кнопки на странице администратора. от django.db импортных моделей # Создайте свои модели здесь. Класс профиль (models.Model): Имя = models.CharField (max_length = 50) убывание = models.TextField (по умолчанию = 'по умолчанию описание пользователя') Работа = models.CharField (max_length = 20) Защита _unicode_ (Я): Самовозврат .name это код для кнопки. Я также знаю, что приложение профиль, который содержит эту кнопку и админ страница была добавлена ​​к установке приложений и функционирует. Когда я пытаюсь makemigrations я пробужден с этой ошибкой. AttributeError: модуль «django.contrib.admin» не имеет атрибута «Modeladmin»
Call More
1

голосов
1

ответ
25

Просмотры

Джанго models.py OneToOneField - помощь в создании отношений между двумя моделями

У меня возникли проблемы тестирования отношения между двумя моделями (CustomUser и профиль), расположенных в различных приложениях. Я надеюсь, что кто-то может определить, где я неправильно здесь: Вот мой профиль / models.py --- вы можете увидеть мое поле пользователя пытаются создать OneToOne с моими пользователями / models.py: от импорта django.db модели из core.models импорта TimeStampedModel класса Profile (TimeStampedModel): пользователь = models.OneToOneField ( 'users.CustomUser', on_delete = models.CASCADE) first_name = models.CharField (max_length = 30, пробел = True) last_name = models.CharField (max_length = 30, пробел = True) био = models.TextField (пустой = True) изображение = models.URLField (пустой = True) защиту __str __ (Я): возвращение self.user.username Вот мой пользователи / models.py: класс CustomUser (AbstractBaseUser, Secret_key, алгоритм = «HS256») возвращение token.decode ( «UTF-8») Таким образом, идея заключается в том, что при создании нового пользователя, профиль создается автоматически, а также. Для этого я использую сигнал post_save в моем приложении пользователей: пользователь / signals.py: от django.db.models.signals импорта post_save из импортного приемника django.dispatch из conduit.apps.profiles.models импорт профиля из .models @receiver импорта пользователя (post_save, отправитель = пользователь) Защита create_related_profile (отправитель, экземпляр, созданный, * Args, ** kwargs): если экземпляр и создано: instance.profile = Profile.objects.create (пользователь = экземпляр) и, наконец, обновление для моих пользователей / init.py файла: от django.apps импорта AppConfig класса UsersAppConfig (AppConfig): имя = 'django.users' метка = verbose_name 'пользователей' = 'Users' Защиты готовы (самостоятельно): импорт users.signals default_app_config = «django.users.UsersAppConfig» Это последнее обновление что-то я относительно незнакомы. Я подозреваю, что это где моя проблема находится. Я могу резисторные новый пользователь через вызов апи без проблем, однако, когда я проверить, существует ли объект профиля для этого нового пользователя, я остался со следующей ошибкой: питон manage.py оболочка из users.models импортировать CustomUser и = CustomerUser.objects.last () у --- все работает в этой точке u.profile --- это где ломается я остался с этой ошибкой в ​​оболочке: users.models.CustomUser.profile. RelatedObjectDoesNotExist: CustomUser не имеет профиля. Любая помощь будет оценена, спасибо! Это последнее обновление что-то я относительно незнаком. Я подозреваю, что это где моя проблема находится. Я могу резисторные новый пользователь через вызов апи без проблем, однако, когда я проверить, существует ли объект профиля для этого нового пользователя, я остался со следующей ошибкой: питон manage.py оболочка из users.models импортировать CustomUser и = CustomerUser.objects.last () у --- все работает в этой точке u.profile --- это где ломается я остался с этой ошибкой в ​​оболочке: users.models.CustomUser.profile. RelatedObjectDoesNotExist: CustomUser не имеет профиля. Любая помощь будет оценена, спасибо! Это последнее обновление что-то я относительно незнаком. Я подозреваю, что это где моя проблема находится. Я могу резисторные новый пользователь через вызов апи без проблем, однако, когда я проверить, существует ли объект профиля для этого нового пользователя, я остался со следующей ошибкой: питон manage.py оболочка из users.models импортировать CustomUser и = CustomerUser.objects.last () у --- все работает в этой точке u.profile --- это где ломается я остался с этой ошибкой в ​​оболочке: users.models.CustomUser.profile. RelatedObjectDoesNotExist: CustomUser не имеет профиля. Любая помощь будет оценена, спасибо! питон manage.py оболочки из users.models импорта CustomUser и = CustomerUser.objects.last () у --- все работает в этой точке u.profile --- это где ломается я остался с этой ошибкой в ​​оболочке : users.models.CustomUser.profile.RelatedObjectDoesNotExist: CustomUser не имеет профиля. Любая помощь будет оценена, спасибо! питон manage.py оболочки из users.models импорта CustomUser и = CustomerUser.objects.last () у --- все работает в этой точке u.profile --- это где ломается я остался с этой ошибкой в ​​оболочке : users.models.CustomUser.profile.RelatedObjectDoesNotExist: CustomUser не имеет профиля. Любая помощь будет оценена, спасибо!
Andy G
1

голосов
0

ответ
25

Просмотры

Не обращая внимания на ошибки в makemigrations, которые могут быть подавлены в проверке системы, Django 2.0

Использование версии Джанго-прокси-переопределениях я перекрывая поле в модели Proxy, которая появляется в базовой модели. Я использую Django 2.0 Это может привести рамки проверки системы Джанго жаловаться, но в файл моих настроек я поставил: SILENCED_SYSTEM_CHECKS = [ «fields.E305», «fields.E304», «models.E006», «models.E017 «] так питон manage.py runserver отлично работает (и наиважнейшая прекрасно работает). Однако, когда я бегу питона manage.py makemigrations, Django вызывает исключение жалуясь о столкновении в названиях: django.core.exceptions.FieldError: локальное поле «человек» в классе столкновений «ProxyBillSponsorship» с полем одноименного из базового класса 'BillSponsorship. Есть в любом случае вокруг этого? Я попытался настройки класса Meta:
fgregg
1

голосов
1

ответ
42

Просмотры

Как JSon список отклика QuerySet от различных моделей?

У меня есть две модели, как этого класса пользователя (models.Model): user_id = models.IntegerField (primary_key = True) имя = models.CharField (max_length = 18) last_name = models.CharField (max_length = 10) возраст = models.CharField ( max_length = 10) класс Friend (models.Model): friend_id = models.IntegerField (primary_key = True) имя = models.CharField (max_length = 18) возраст = models.CharField (max_length = 10) friend_ и user_id являются пользователями и тот же идентификатора в = User.objects.filter (user_id = 1) друзья = Friend.objects.filter (friend_id = 1) Я делаю союз как это слияния = список (пользователи) + список (друзья) [,] Я хочу сделать это JSON ответ от слияния HttpResponse (json.dumps (слияния), content_type = «приложения / JSON») Я надеюсь, что вы понимаете мой вопрос и некоторое представление о том, как реализовать его
afr
1

голосов
1

ответ
12

Просмотры

Подключение более двух баз данных с использованием Django ORM, одна база данных устаревших баз данных без переноса в приложение

Мы хотим подключить удаленные существующую базу данных из settings.py, мы можем использовать эти таблицы непосредственно с использованием модели без мигрирует из приложения. Мы знаем о соединении устаревших баз данных, но inspect.db команда всегда прошу перенести подключенную базу данных. Является ли использование MySQL Connector является предпочтительным или он находится вне стандарта, пожалуйста, предложите. Спасибо, ваша помощь оценили!
Aksheer Mittal
1

голосов
0

ответ
61

Просмотры

Django + PostgreSQL репликации двунаправленной

Во-первых, пожалуйста, позвольте мне представить мое потребительной случай: Я работаю над приложением Django (GraphQL API с использованием графена), который работает в облаке, но и имеют свои локальные экземпляры в локальных сетях заказчика. Например Одно из приложений в облаке и 3 экземпляра (локальное приложение Django экземпляра с PostgreSQL сервер с поддержкой BDR) на локальных сетях. Если есть подключение к сети мы используем двунаправленную репликацию, чтобы иметь свежие данные, потому что, если нет подключения мы используем локальные экземпляры. Вот упрощенная схема инфраструктуры для иллюстрации. Так что, если я хочу использовать BDR я не могу сделать и DELETE UPDATE операции в ОРМ. Я должен генерировать UUID, для моих сущностей и каждое изменение только новая запись с обновленными данными за тот же UUID. Последние записи для выбранной UUID моя верная запись. Удаление просто другой флаг. До сих пор, кажется, что все будет в порядке, проблема начинается, когда я хочу использовать, например, многие-ко-многим. Отношения опирается на первичные ключи базы данных, и я должен обрабатывать удаление каким-то образом. Можете ли вы найти лучший способ, как решить эту проблему? У меня есть несколько идей, но я не хочу, чтобы сделал плохое решение: я могу попытаться переопределить ManyToManyField работать с моей UUID, и флагом специального удаления. Это выглядит как хорошая идея, потому что все должно работать, как и раньше (графен найдет отношения и т.д.). Но я боюсь «невидимых» последствий. Создайте свои собственные модели для имитации ManyToMany отношения. Это гораздо больше работы, но она должна работать нормально. Вы должны решить, прежде чем подобный вопрос? Есть ли какая-то хорошая практика или это ы просто строит шоссе в ад (AC / DC довольно прохладно)? Или, если вы думаете, что это лучший способ, как построить архитектуру сервиса, я хотел бы услышать ваши идеи. Заранее спасибо.
Jakub Dubec
1

голосов
2

ответ
25

Просмотры

Джанго Inner присоединиться с помощью ORM

У меня есть следующие таблицы в моей базе данных sqlite3: ПРАГМА table_info (AUTH_USER); 0 | ID | число | 1 || 1 1 | пароль | VARCHAR (128) | 1 || 2 0 | last_login | DateTime | 0 || 0 3 | is_superuser | BOOL | 1 || 0 4 | имени пользователя | VARCHAR (150 ) | 1 || 0 5 | first_name | VARCHAR (30) | 1 || 0 6 | почта | VARCHAR (254) | 1 || 0 7 | is_staff | BOOL | 1 || 0 8 | is_active | BOOL | 1 | | 0 9 | date_joined | DateTime | 1 || 0 10 | last_name | VARCHAR (150) | 1 || 0 ПРАГМА table_info (accounts_member); 0 | ID | число | 1 || 1 1 | team_id | число | 1 || 2 0 | идентификатор_пользователя | число | 1 || 0 3 | department_id | число | 1 || 0 и, наконец: ПРАГМА table_info (accounts_department); 0 | ID | число | 1 || 1 1 | Название | VARCHAR (20) | 1 || 2 0 | Описание | VARCHAR (255) | 1 || 0 Выше три таблицы связаны друг с другом следующим образом: AUTH_USER главная таблица, которая связывает таблицы. accounts_member ссылки AUTH_USER с внешним ключом user_id, а также ссылки accounts_department с внешним ключом DEPARTMENT_ID. выберите * от AUTH_USER внутреннего соединения accounts_member на accounts_member.user_id = auth_user.id внутреннее соединение account_department на account_department.department_id = accounts_member.id я есть различные учебники, но большинство я получаю требует использования где условия функции. Ниже приведены мои модели: Для класса accounts_department отдела (models.Model): класс Meta: get_latest_by = "имя" имя = models.CharField (max_length = 20) Описание = models.CharField (max_length = 255) Защита __str __ (Я): возвращение self.name Защита get_absolute_url (Я): возвращение Для accounts_member: члены класса (models.Model): команда = models.ForeignKey (профиль модель. CASCADE) пользователь = models.ForeignKey (Пользователь, models.CASCADE, related_name = "членство") отдел = models.OneToOneField (отдел, models.CASCADE, пустой = True, нуль = True) и таблица AUTH_USER использует встроенные модели Джанго. Я попытался следующие в моем views.py: профиль = request.profile отдел = Department.objects.all () членов = (is_active = 1) .select_related ( "отдел" "пользователь") данных Member.objects.filter = { "страница": "профиль", "профиль": профиль, 'отделы': отдел "members_list": члены "show_api_keys": false, "api_status": "по умолчанию", "team_status": "по умолчанию"} Но только возвращает значение таблицы accounts_member,
H Dindi
1

голосов
1

ответ
68

Просмотры

Python - Django страница администратора сайта пуста после авторизовалась

Я пытаюсь построить крестики нолики игру. Моя страница администратора сайта Django появляется пустой, и я не в состоянии решить. от django.db моделей импорта из django.db.models импорта Q из django.contrib.auth.models импорта GAME_STATUS_CHOICES пользователя = {( «F», «Первый игрок двигаться»), ( «S», «Второй игрок двигаться '), (' W», 'выиграл Первый игрок'), ( 'L', 'Второй игрок побеждает'), ( 'D', 'Draw')} класса GameQuerySet (models.QuerySet): защиту games_for_user (самостоятельная, пользователь): возвращение self.filter (Q (first_player = пользователь) | Q (second_player = пользователь)) защиту активный (само): возвращение self.filter (Q (статус = 'F') | Q (статус = 'S') ) класс игры (models.Model): first_player = models.ForeignKey (Пользователь, related_name = " регистр (Move) @ admin.register (Игра) класса GameAdmin (admin.ModelAdmin): list_display = ( 'ID', 'first_player', 'second_player', 'статус') list_editable = ( 'статус') Я новичок в Django. Я в настоящее время застрял на эту проблему на некоторое время. Не удалось найти ответы. Мой settings.py кажется оштрафовать, INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', '' django.contrib.messages , 'django.contrib.staticfiles', 'игры', "игрок,] ) Я новичок в Django. Я в настоящее время застрял на эту проблему на некоторое время. Не удалось найти ответы. Мой settings.py кажется оштрафовать, INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', '' django.contrib.messages , 'django.contrib.staticfiles', 'игры', "игрок,] ) Я новичок в Django. Я в настоящее время застрял на эту проблему на некоторое время. Не удалось найти ответы. Мой settings.py кажется оштрафовать, INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', '' django.contrib.messages , 'django.contrib.staticfiles', 'игры', "игрок,]
Sheshan
1

голосов
1

ответ
27

Просмотры

Многие ко многим отношений Django модели с дополнительными атрибутами

Я новичок в разработке Django (и программировании MVC в целом!) рассматривают следующий пример того, как я мог перевести эти примитивы на модель? USER (идентификатор, имя, фамилия) ENGLISH_CERTIFICATION (идентификатор, код, название) USER_CERTIFICATION (идентификатор, id_user, id_english_certification, дата) Класс пользователя (models.Model): Имя = models.CharField (max_length = 64) фамилия = models.CharField ( max_length = 64) ??? Класс EnglishCertification (models.Model): код = models.CharField (max_length = 2) Название = models.CharField (max_length = 64) ??? Где я поставил отношения и поле «дата»? Спасибо!
Andrea

Просмотр дополнительных вопросов