Как я могу добавить объект в группу при его создании? - PullRequest
0 голосов
/ 03 апреля 2020

Мне нужно сохранить объект в группу во время создания. У меня есть модели 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'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...