Мне нужно сохранить объект в группу во время создания. У меня есть модели Porumbei и Grupuri. Каждый Порумбей должен принадлежать к Групури. У меня есть 4 разных Grupuri и в зависимости от значения полей формы, оно должно быть добавлено справа Grupuri. Есть ли «лучшая практика»? Ниже приведены модели май.
Групури
class Grupuri(models.Model):
""" Definire model pentru salvarea porumbeilor in grupuri"""
nume_grup = models.CharField(max_length=50, unique=True)
porumbei = models.ManyToManyField(Porumbei, related_name="grup_porumbei")
Порумбей
class(models.Model):
id_porumbel = models.AutoField(primary_key=True)
serie_inel = models.CharField(max_length=25, null=False, blank=False, unique=True,
help_text="Seria de pe inel. Ex: RO 123456")
is_active = models.BooleanField(default=True)
status = models.ForeignKey(StatusPorumbei, on_delete=models.PROTECT)
...
Мой взгляд
def porumbelnou(request):
if request.method == "POST":
# crescator=request.user - folosit pentru a filtra porumbeii crescatorului logat
form = AdaugaPorumbel(request.POST, request.FILES, crescator=request.user)
if form.is_valid():
obj = form.save(commit=False)
obj.crescator = request.user
obj.save()
return redirect('porumbei')
else:
# crescator=request.user - folosit pentru a filtra porumbeii crescatorului logat
form = AdaugaPorumbel(crescator=request.user)
context = {
'form': form,
}
template = loader.get_template("adaugare-porumbel.html")
return HttpResponse(template.render(context, request))
Что я пытаюсь, но у меня есть MultiValueDictKeyError на id_porumbel
if form.data['is_active']:
toti = Grupuri.objects.get(nume_grup__exact="Toti porumbeii")
toti.porumbei.add(form.data['id_porumbel'])