Невозможно распаковать неитерабельный объект Django
Итак, я пытаюсь отфильтровать варианты поля по атрибуту created_by, который является экземпляром User, полученным из запроса при его создании.
После некоторого исследования я нашел некоторые объяснения и последовал им, но я не смог добиться того, чтобы выбор действительно появился на форме. Теперь я получаю ошибку, что Categoria Object не является Iterable.
Ошибка, которую Django показывает мне в браузере:
Тип исключения: TypeError Значение исключения:
невозможно распаковать неитерабельный объект Categoria
класс, который я использовал в качестве модели для формы:
class Contato(models.Model):
nome = models.CharField(max_length=255)
sobrenome = models.CharField(max_length=255, blank=True)
telefone = models.CharField(max_length=255)
email = models.CharField(max_length=255, blank=True)
data_criacao = models.DateTimeField(
default=timezone.now)
descricao = models.TextField(blank=True)
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
categoria = models.ForeignKey(
Categoria, on_delete=models.DO_NOTHING)
mostrar = models.BooleanField(default=True)
foto = models.ImageField(blank=True, upload_to='fotos/%y/%m/%d')
def __str__(self):
return self.nome
вот код из формы, которую я пытаюсь изменить
class ContatoForm(forms.ModelForm):
class Meta:
model = Contato
exclude = ('created_by',)
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(ContatoForm, self).__init__(*args, **kwargs)
category_choices = list(Categoria.objects.filter(
created_by=self.user))
self.fields['categoria'] = forms.ChoiceField(choices=category_choices)
А это вид, в котором я использую эту форму
@login_required(redirect_field_name='login')
def dashboard(request):
if request.method != 'POST':
form_contato = ContatoForm(user=request.user)
form_categoria = CategoriaForm
return render(request, 'accounts/dashboard.html', {'form_contato': form_contato, 'form_categoria': form_categoria})