Как создать группу Django и назначить группу определенным моделям?

#python #django

#python #django

Вопрос:

Я хотел бы знать, как создавать группы в django и назначать группу определенным моделям. Как я могу это сделать?

Комментарии:

1. docs.djangoproject.com/en/3.1/topics/auth/default/…

Ответ №1:

Вы создаете модель для своего Group :

 class Group(models.Model):
    name = models.CharField(max_length=128, unique=True)
    # … 

затем вы можете определить ForeignKey из модели для этого Group :

 class OtherModel(models.Model):
    name = models.CharField(max_length=128, unique=True)
    group = models.ForeignKey(
        'Group'
        on_delete=models.PROTECT,
        related_name='other_models'
    )
    # … 

Далее вы можете создать группу, например:

 grp = Group.objects.create(name='name-of-the-group') 

а затем создайте OtherModel экземпляр, который ссылается на эту группу:

 item = OtherModel.objects.create(
    name='name-of-the-model',
    group=grp
) 

Комментарии:

1. Проблема в том, что я хочу назначить группу пользовательской модели django по умолчанию, но не знаю, как ее изменить

2. @Serket: Пользовательская модель Django уже имеет группы: docs.djangoproject.com/en/3.1/ref/contrib/auth/#group-model он использует это для своей модели разрешений.

3. тогда как именно мне использовать эту модель?

4. @Serket: вы импортируете его из from django.contrib.auth.models import Group . Это простая модель, такая же, как и другие модели (и такая же, как User модель), поэтому вы можете делать с этой Group моделью все, что угодно, что вы делаете с пользовательской моделью.

5. и что мне тогда делать?