Проблема с формой Django на объекте Model и перенаправление

Я столкнулся с 2 проблемами при создании формы в Django:

  1. Проблема при перенаправлении после отправки формы
  2. Объект модели не является итерируемым

В частности, я создаю форму обратной связи, и весь мой код выглядит следующим образом. Есть 4 файла, и я использую crispy_form для отображения формы в html-файле. Все работает хорошо, за исключением того, что после нажатия на кнопку submit. Она не может вернуться к той же форме обратной связи с пустыми полями и выдает ошибку 'BugTypes' object is not iterable

Пожалуйста, проверьте и помогите. Спасибо!

# models.py
from django.db import models

# Create your models here.
class BugTypes(models.Model):
    bugType = models.CharField(max_length=100)
    
    def __str__(self):
        return self.bugType
    
class UserFeedback(models.Model):
    username = models.CharField(max_length=100)
    problem = models.CharField(max_length=255)
    bugType = models.ManyToManyField("BugTypes", related_name='userFeedBack')
    feedback = models.TextField()
    
    def __str__(self):
        return self. Problem
# forms.py
from django import forms
from survey.models import UserFeedback, BugTypes

class FeedbackForm(forms.ModelForm):
    username = forms.CharField(
        widget = forms.TextInput(
            attrs={'class': 'form-control'}
        )
    )
    
    problem = forms.CharField(
        widget = forms.TextInput(
            attrs = {'class': 'form-control'}
        )
    )
    
    bugType = forms.ModelChoiceField(
        queryset = BugTypes.objects.all(), 
        widget = forms.Select(
            attrs={'class': 'form-control'}
    ))
    
    feedback = forms.CharField(
         widget = forms.Textarea(
            attrs = {'class': 'form-control'}
    ))
    
    class Meta:
        model = UserFeedback
        fields = "__all__"
# views.py
from django.shortcuts import render
from django.urls import reverse
from django.views.generic.edit import CreateView

from survey.forms import FeedbackForm
from survey.models import UserFeedback

# Create your views here.
class UserFeedbackView(CreateView):
    model = UserFeedback
    form_class = FeedbackForm
    success_url = '/survey/feedback/'
 

userFeedback_view = UserFeedbackView.as_view(template_name = "survey/user_feedback.html")
# urls.py
from django.urls import path
from survey.views import userFeedback_view

app_name = 'survey'

urlpatterns = [
    path('feedback', view = userFeedback_view, name='userFeedback')
]
Вернуться на верх