Доброй ночи, просидел 2 часа над вопросом как сохранить запись в бд? Вот код
#form
class AddPerformerForm(ModelForm):
categories = forms.ModelChoiceField(queryset=Category.objects.all(),
widget=forms.CheckboxSelectMultiple,
empty_label=None)
class Meta:
model = Performer
fields = ['user', 'categories']
#models
class Category(models.Model):
name = models.CharField(max_length=64)
def __str__(self):
return self.name
class Performer(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
)
categories = models.ManyToManyField(Category)
#view
def create_performer(request):
form = AddPerformerForm({'user': request.user})
if request.method == 'POST':
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
return HttpResponse('No')
context = {"form": form}
return render(request, "performerslist/addperformer.html", context)
<form action="/create-performer/" method="POST">
{% csrf_token %}
<div class="row">
{% for category in form.categories %}
{{category.tag}}
<label for="{{category.id_for_label}}">{{category.choice_label}}</label>
<br>
{% endfor %}
<button class="btn">button</button>
</div>
</form>
Дело в том, что форма не проходит валидацию, потому что в форму передается только категории без самого юзера.