Django m2m (прикрепление нескольких пользователей к 1 задаче) - Python

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток. Пишу web-system'у и возникла проблема с записью m2m значений. Вот моя models:
Листинг программы
  1. class Project(models.Model):
  2. name = models.CharField(max_length = 250)
  3. species = models.ForeignKey('Species_project', on_delete = models.CASCADE)
  4. species_task = models.ForeignKey('Species_Task', on_delete = models.CASCADE)
  5. created_task = models.DateField(verbose_name='Дата создания',auto_now_add=True)
  6. finish_task = models.DateField(verbose_name='Дата окончания')
  7. user = models.ManyToManyField('auth.User')
  8. description = models.TextField()
  9. def __str__(self):
  10. return self.name
вот views:
Листинг программы
  1. def create_project_task(request, pk):
  2. task_species = Species_Task.objects.all()
  3. user_list = User.objects.all()
  4. if request.method == 'POST':
  5. name = request.POST.get('name')
  6. description = request.POST.get('description')
  7. species_task = request.POST.get('species_task')
  8. date_finish = request.POST.get('finish_date')
  9. user_task = request.POST.get('user_task')
  10. Project.objects.get_or_create(name = name, species_id=pk, species_task_id=species_task, user=user_task, finish_task=date_finish, description=description)
  11. return render(request, 'projects/create_project_task.html', {'task_species': task_species, 'user_list':user_list})
и сама html от куда я беру значения на запись:
Листинг программы
  1. <select name="user_task" class="form-control" id="exampleFormControlSelect2" multiple="multiple">{% for itm in user_list %}>
  2. <option value={{ itm.id }}>
  3. {{ itm.first_name }} {{ itm.last_name }}
  4. {% endfor %}
У меня не получчается передать несколько значений в request.Post и записать их. Через админ панель все работает,несколько исполнителей прикрепляются к задачам, а вот как сделать это через html и реализовать во view не получается. так же вылетает вот такая ошибка Direct assignment to the forward side of a many-to-many set is prohibited. Use user.set() instead.

Решение задачи: «Django m2m (прикрепление нескольких пользователей к 1 задаче)»

textual
Листинг программы
  1. class Project(models.Model):
  2.     name = models.CharField(max_length = 250)
  3.     species = models.ForeignKey('Species_project', on_delete = models.CASCADE)
  4.     species_task = models.ForeignKey('Species_Task', on_delete = models.CASCADE)
  5.     created_task = models.DateField(verbose_name='Дата создания',auto_now_add=True)
  6.     finish_task = models.DateField(verbose_name='Дата окончания')
  7.     user = models.ManyToManyField('auth.User')
  8.     description = models.TextField()
  9.  
  10.     def __str__(self):
  11.         return self.name

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы