как сделать каждую заметку созданной специально для конкретного пользователя в Django

я создал панель пользователя и хочу разрешить конкретному пользователю создавать заметки, как это можно сделать?

Models.py

class Client(models.Model):
    user = models.OneToOneField(User, null=True, blank=True, unique=True, on_delete=models.CASCADE)
    TITLE = (
        ('Mr', 'Mr'),
        ('Mrs', 'Mrs'),
        ('Ms', 'Ms'),
        ('Miss', 'Miss'),
        ('others', 'others'),
    )
    title = models.CharField(max_length=250, null=True, choices=TITLE)
    First_name = models.CharField(max_length=250, null=True)

class Note(models.Model):
   title = models.CharField(max_length=250, null=True)
   notes_content = models.TextField(null=True)

пожалуйста, как мне создать функцию, чтобы позволить мне;

Всего 1 ответ


Ответ на ваш вопрос зависит от того, как вы реализовали логику панели мониторинга, но, возможно, вам нужны разрешения :

 class Note(models.Model):

     class Meta:
         permissions = (
             ('can_view_notes', 'can_view_notes'),
             ('can_create_notes', 'can_create_notes'),
         )

После запуска миграции вы можете добавить пользовательские разрешения через панель администратора или сделать это вручную:

view_perm = Permission.objects.get(name='can_view_notes')
create_perm = Permission.objects.get(name='can_create_notes')
user = User.objects.get(username='allowed')
user.user_permissions.add(view_perm)
user.user_permissions.add(create_perm)
user.save()

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

if request.user.is_authenticated():
    if request.user.has_perm('note.can_view_notes'):
        ...
    elif request.user.has_perm('note.can_create_notes'):
        ...