ManyToOneField in Django

I am trying to define a many-to-one field in a class that is Many. For example, imagine a situation where a user can only be a member of one group, but a group can have many users:

class User(models.Model):
    name = models.CharField()

class Group(models.Model):
    name = models.CharField()
    # This is what I want to do -> users = models.ManyToOneField(User)

Django docs will say to define the group field in the User model as ForeignKey, but I need to define the relationships in the Group model. To my knowledge, there is no ManyToOneField, and I would prefer not to use ManyToManyField.

+5
source share
3 answers
Field

A ManyToOne, , ForeignKey Django. User , Django Groups:

class Group(models.Model):
    name = models.CharField(max_length=64)

class User(models.Model):
    name = models.CharField(max_length=64)
    group = models.ForeignKey(Group)

g = Group.objects.get(id=1)
print g.user_set.all()  # prints list of all users in the group

, Django ... FK , ( M2M, ), ManyToOne "" . SQL, , . ManyToOne, , , , ForeignKey, .

+8

, User - ... OneToMany. .

+1

, :

group = Group.objects.get(id=1)
users_in_group = group.user_set.all()

" " .

, :

class Group(models.Model):
    name = models.CharField(max_length=64)

    def users(self):
        return self.user_set.all()

:

{{ group.user_set.all }}

{{ group.users }}
+1

All Articles