Павел Аксенов: Спасибо большое за вашу помощь! Могли бы вы все ваши ответы отдельно опубликовать в виде ответа, чтобы я смог отметить их как правильный ответ.
Павел Аксенов: вы правы, я тоже это имел введу. Не передается значение project_code. Добавил `context = {'project': project, 'form': form}` Модельное окно появилось, но при попытки создать новую запись опять ругается. Как вы думаете где еще мое упущение?
Traceback (most recent call last):
*****SOME TEXT******
File "C:\Users\Nurzhan\PycharmProjects\RMS\project\models.py", line 125, in get_absolute_url
return reverse('project:group_task_detail', args=[self.project_code, self.code])
AttributeError: 'GroupTask' object has no attribute 'project_code'
model.py:
class GroupTask(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
code = models.UUIDField(_('Code'), primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(_('Name'), max_length=250)
tasks = models.ManyToManyField("Task")
Павел Аксенов: Спасибо за информацию. Я поменял на обычную версию jQuery (3.1.1). Cейчас при нажатии на кнопку также не выводится модальное окно, но при этом происходит следующая ошибка. В последней строке Traceback`a можно заметить что значение project_code отсутствует. Можете ли еще раз подсказать во view cейчас использую render_to_string, как правильно добавить kwargs={'project_code': project.code}? Не могу сообразить...
`Traceback (most recent call last):
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\exception.py", line 39, in inner
response = get_response(request)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Nurzhan\PycharmProjects\RMS\project\views.py", line 121, in group_task_add
data['html_group_task_add_form'] = render_to_string('project/group_task_add.html', context, request=request)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\template\loader.py", line 68, in render_to_string
return template.render(context, request)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\template\backends\django.py", line 66, in render
return self.template.render(context)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\template\base.py", line 208, in render
return self._render(context)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\template\base.py", line 199, in _render
return self.nodelist.render(context)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\template\base.py", line 994, in render
bit = node.render_annotated(context)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\template\base.py", line 961, in render_annotated
return self.render(context)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\template\defaulttags.py", line 439, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\urls\base.py", line 91, in reverse
return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\urls\resolvers.py", line 392, in _reverse_with_prefix
(lookup_view_s, args, kwargs, len(patterns), patterns)
django.urls.exceptions.NoReverseMatch: Reverse for 'group_task_add' with arguments '()' and keyword arguments '{'project_code': ''}' not found. 1 pattern(s) tried: ['ru/account/dashboard/projects/(?P[0-9a-f-]+)/add_new_group_task/$']
[27/Mar/2017 00:41:51] "GET /ru/account/dashboard/projects/6ee4fa74-8e91-4365-98be-adb0325ce36c/add_new_group_task/ HTTP/1.1" 500 20661`
Roman Kitaev: Простите, он самый. Пишет что связь установлено (websocket connected), но при отправки сообщения ничего не выводится. Что не так в consumers?
sim3x: Но ведь это будет дублированием вопросов? Разве нет? Вот как я пытался связать чат с конкретным проектом, видимо оно и вызвала ошибку Room.objects.get_or_create(project=project_code).
sim3x: Cпасибо за ссылку! Redis cервер запустил, но страница с чатом не открывается. Обновил пост с ошибкой. Как правильней сделать привязку чата к проекту?
Я тоже догадывался, что неправильно что-то сделал именно с Redis. Установил его я через `pip install asgi_redis`. В настройках добавил слой. Что еще нужно было сделать?
sim3x: ответ на который вы ссылаетесь говорит где нужно определить свой кастомный widget. Я это уже сделал в Meта классе формы. Согласен что нужен disabled="disabled. Как раз это и не выходит, поэтому интересно, что было сделано не так по вашему мнению.
Уже ознакомлен с данным постом, в ней к сожалению нет того что мне нужно. В нем используется forms.Form, когда как я использую forms.ModelForm. Также в ответе, который был отмечен, как верным говориться что следует использовать свой custom widget что я и пытаюсь сделать. В остальных ответах disabled делали на optgroup, а не на сам option. Как вы думаете почему кастомный виджет, который я пытаюсь использовать не работает? В чем я ошибся?
Я только что поменял на БД на sqllite3 и протестировал. Вышла такая ошибка `django.db.utils.IntegrityError: NOT NULL constraint failed: project_membership.project_id` . Опять БД не устраивает project_id.
Я добавил данную ссылку {% url 'project:add_project_member' project_id=project.id %} в cтраницу 'project_detail', она меня перебрасывает на новую страницу, где есть поля user и role, но при попытке сохранить выдает ошибку. Полный trackback я добавил в пост. Можете взглянуть. Я думаю идет конфликт с базой данных.
Если вкратце, то в моей системе администратор назначает одного или нескольких пользователей менеджером определенного проекта, а уже пользователь отмеченный как менеджер дальше назначает другие роли в проекте (разработчик, системный аналитик и т.д.). Сам пользователь не может менять свой статус, его статус может поменять лишь то лицо, которое имеет на это права. Например администратор может поменять роль у пользователя который отмечен как менеджер, а менеджер может менять роль у остальных членов проекта.
В моем конкретном случаи проект может иметь множества пользователей, и пользователь может быть в разных проектах, поэтому выбрал пал на ManyToManyField. Есть ли другие идеи как это совместить в случаи с ManyToManyField?
Не совсем уверен, что второй метод подойдет в моей случаи. На самом деле в модели Project помимо managers есть другие поля как developers(разработчики), analysts(аналитики) и создавать для каждых такую отдельную модель не разумно я так думаю. Задача на самом деле вывести список проектов для текущего пользователя, если он является членов проекта, при этом он может быть отмечен админам как менеджером или разработчиком проекта. Поэтому я пытался записать данные из поле managers или developers в поле members после создания объекта для того, чтобы в дальнейшем мог проверить является ли текущий пользователь членом проекта. Это если вкратце :) Что касается первого варианта, немного не понимаю как затем мог бы использовать вывод метода members_dict.