创建对象后如何将其添加到组中?

时间:2020-04-03 05:44:29

标签: python django

我需要在创建对象时将对象保存到组中。 我有Porumbei和Grupuri模型。每个Porumbei必须属于一个Grupuri。我有4种不同的Grupuri,并且根据表单字段的值,必须将其添加到正确的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")

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))

我尝试了些什么,但是它使我在'id_porumbel'上遇到了MultiValueDictKeyError

if form.data['is_active']:
    toti = Grupuri.objects.get(nume_grup__exact="Toti porumbeii")
    toti.porumbei.add(form.data['id_porumbel'])

0 个答案:

没有答案