Hi, I think finding solution to this can consume time. Simply make a function which will change the user reference of the card over a given period of time.
Regards Dev On Mon 8 Oct, 2018, 10:47 PM Derek, <[email protected]> wrote: > Apart from setting up a unique key (user, card, start, end), you may also > want to check if the date range for that card overlaps with another date > range; e.g. see > https://stackoverflow.com/questions/9044084/efficient-date-range-overlap-calculation-in-python > --> do that check in the clean method and return an error if the system > tries to allocate the card when its already (partly) used in the same time > period. If you have other restrictions (like not being being assign cards > "in the past") that will also help cut down on invalid assignments. > > On Monday, 8 October 2018 13:10:04 UTC+2, Shareef 617 wrote: >> >> Consider a project where users can have many cards (or anything else, >> card is just an example), and the same card can belong to multiple users *but >> only in different time periods*. So if a card is assigned to user from >> 1.09.2014 to 1.10.2014 (dd/mm/yyyy), then the same card can be assigned to >> another user but only for time period that ends before 1.09.2014 or starts >> after 1.10.2014. I hope you get it. >> >> I've created the following models: >> >> class User(models.Model): >> cards = models.ManyToManyField(Card, through="UsersCards") >> >> class UsersCards(models.Model): >> user = models.ForeignKey(User) >> card = models.ForeignKey(Card) >> start_date = models.DateField() >> end_date = models.DateField() >> >> -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/0657b0f6-eded-4566-929a-415459e346eb%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/0657b0f6-eded-4566-929a-415459e346eb%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CALZ%3DbEK7AFDCjAKUyJOt0qU0BeFyZbF9Snf%2B%3De-QtO8%3Dh-AmYA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

