Пост данных из ListBox не отображается в базе данных - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть приложение, которое принимает в качестве одного из полей формы несколько списков.Данные определяются на html-странице как «temp_groups», затем в view.py для form.cleaned_data ['actual field'] устанавливается извлеченное временное поле.Извлеченные данные выглядят корректно (2,3) и, глядя на то же поле после выполнения form.save (), выглядит корректно.Но данные не отображаются в базе данных таким образом.Он использует значение, установленное в фактическом «скрытом» поле на html-странице.Вот код

Пробовал с использованием фактического имени поля (group_members), но в результате фактически публикуется только последнее значение, выбранное из списка.

Также попытался настроить виджет на формахФайл .py, в котором данные, используемые при поставке, получены из запроса объекта User (auth_user).Но это никак не повлияло.

url.py

   urlpatterns = [..
      path('newgroups/', views.newgroups, name='newgroups'),

forms.py

   class QueryGroupsForm(forms.ModelForm):
       class Meta:
          model = QueryGroups
          fields = ['group_name',
                    'group_desc',
                    'group_members',
                   ]

models.py

   class QueryGroups(models.Model):
      group_name = models.CharField(max_length=40, null=True, blank=True)
      group_desc = models.CharField(max_length=100, null=True, blank=True)
      group_members = models.CharField(max_length=100, null=True, blank=True)

групп запросов.html

   <div class="col-3">
     <div class="form-group">
       <label for="temp_members" class="" style="font-weight: bold;">Group Members<label>
       <select id="temp_members" name="temp_members" class="form-control" multiple="multiple">
          {% for nextUser in users %}
            <option value="{{nextUser.id}}">{{nextUser.username}}</option>
          {% endfor %}
       </select>
       <input type="hidden" name="group_members" id="group_members" value="TBD">
     </div>
   </div>

views.py

   def newgroups(request):
       if request.method == "POST":
          group_form = QueryGroupsForm(request.POST)
          user_list = request.POST.getlist('temp_members')
          users_of_group = ""
          for next_user in user_list:
              users_of_groups += next_user + ","
          list_len = len(users_of_groups)
          users_of_group = users_of_group[:list_len - 1]
          if group_form.is_valid():
              group_form.cleaned_data['group_members'] = str(user_of_group)
              group_form.save()
              post_list = group_form.cleaned_data['group_members']
              return HttpResponse("user_of_group: " + users_of_group + " post_list: " + str(post_list))

На HttpResponse представлено «users_of_group: 2,3 post_list: 2,3».Однако в поле group_members в базе данных находится значение «TBD», которое задается как скрытое поле в html-файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...