Generic Relations and M2M

7 views
Skip to first unread message

Vincenzo Tozzi

unread,
Mar 2, 2021, 7:31:29 AMMar 2
to django...@googlegroups.com
Ayo,

bom dia pessoal!

Tudo indo ai?

Espero que sim e muito bom poder ainda escrever numa lista de discussão
sobre software livre.

Bom.. to precisando de uma ajuda.. tenho esse caso de relações
ManyToMany Ewe para Ewe onde Ewe tb tem uma relação generica atualizada
na hora da save. O problema é que o object_id não esta pegando o valor e
da erro constraint:
IntegrityError at /admin/bbx/ewe/add/
NOT NULL constraint failed: bbx_ipanhipti.object_id

Esse é o codigo:

<code>

class Ipanhipti(models.Model):





# Relationships


content_type = models.ForeignKey(ContentType,
on_delete=models.CASCADE)


object_id = models.CharField(max_length=36)


content_object = GenericForeignKey('content_type', 'object_id')





# Fields


uuid = models.UUIDField(primary_key=True, default=uuid.uuid4,
editable=False)


class Ewe(models.Model):





# Relationships


ipanhipti = GenericRelation(Ipanhipti, related_query_name="ewes")


ewes = models.ManyToManyField('self', through="eweRelation",


symmetrical=False, blank=True)

# Fields
uuid = models.UUIDField(primary_key=True,
default=uuid.uuid4, editable=False)
has_ipanhipti = models.BooleanField(default=True)

def save(self, *args, **kwargs):


if self.has_ipanhipti:


self.ipanhipti.update_or_create(


content_type=Ewe,


object_id=self.uuid,



super(Ewe, self).save(*args, **kwargs)


class eweRelation(models.Model):


source = models.ForeignKey(Ewe, related_name='source',


on_delete=models.CASCADE,
blank=True, null=True)

target = models.ForeignKey(Ewe, related_name='target',


on_delete=models.CASCADE,
blank=True, null=True)

relation_notes = models.CharField(max_length=254,
blank=True, null=True)


position = models.PositiveIntegerField(blank=True, null=True)





class Meta:


ordering = ('position',)


</code>


Alguma ajuda?

Abraço,
Vince
Reply all
Reply to author
Forward
0 new messages