#python #django
#python #django
Вопрос:
Я хотел бы знать, как создавать группы в django и назначать группу определенным моделям. Как я могу это сделать?
Комментарии:
Ответ №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. и что мне тогда делать?