Opened 15 years ago

Last modified 14 years ago

#12938 new New feature

not possible to validate a many-to-many at the model

Reported by: ryazwinski Owned by: nobody
Component: Database layer (models, ORM) Version: 1.1
Severity: Normal Keywords: many_to_many, validation
Cc: contact@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Russell Keith-Magee)

Reference ticket #12065 for genesis of this ticket.

It isn't currently possible to perform model-level validation of many-to-many relationships.

For example:

class Test(models.Model):
    f1 = models.CharField(max_length=100)
    m2m = models.ManyToManyField(Other)

It is not possible to ensure that the f1/m2m relationship is unique. Validation in the Test class cannot validate the m2m because Test won't have been saved yet.

According to the ticket's flags, the next step(s) to move this issue forward are:

  • To provide a patch by sending a pull request. Claim the ticket when you start working so that someone else doesn't duplicate effort. Before sending a pull request, review your work against the patch review checklist. Check the "Has patch" flag on the ticket after sending a pull request and include a link to the pull request in the ticket comment when making that update. The usual format is: [https://github.com/django/django/pull/#### PR].

Change History (7)

comment:1 by Russell Keith-Magee, 15 years ago

Description: modified (diff)
Triage Stage: UnreviewedAccepted

Accepted, but this isn't going to be easy to fix, due to the somewhat disconnected relationship between m2m tables and their parent models.

comment:2 by jkocherhans, 15 years ago

Just for the logs, Honza and I asked Rick to file this after a discussion about a bug flatpages. We're aware that it's going to be reaaaaaaly hard. :(

comment:3 by anonymous, 14 years ago

Cc: contact@… added

comment:4 by Luke Plant, 14 years ago

Type: New feature

comment:5 by Luke Plant, 14 years ago

Severity: Normal

comment:6 by Aymeric Augustin, 13 years ago

UI/UX: unset

Change UI/UX from NULL to False.

comment:7 by Aymeric Augustin, 13 years ago

Easy pickings: unset

Change Easy pickings from NULL to False.

Note: See TracTickets for help on using tickets.
Back to Top