Django AUTHENTICATION AND AUTHORIZATION группы и разрешения хотят создавать проверенных пользователей - PullRequest
0 голосов
/ 27 июня 2018

Привет Джангонаутс, Я новичок в Django, пожалуйста, прости любую глупую ошибку в логике или коде.

Введение Я создаю веб-приложение, в котором участники могут писать сообщения по теме и предлагать курсы по этой теме. Пример Участник может написать блог о том, как кататься на велосипеде, и предложить курсы по этому вопросу.

Что я хочу: Я хочу, чтобы участники, которые хотят предлагать курсы, были проверены. Пример: участник должен заполнить форму со своими данными, как ... имя, адрес и удостоверение личности с фотографией. Кроме того, оплатите сбор в размере 9,99 долл. США для подтверждения. После того, как админ (я в этом случае) проверяет, все ли хорошо, я одобряю их. и тогда они будут «проверенными участниками» и смогут предлагать курсы

То, что у меня есть до сих пор: Сейчас участники могут предлагать курсы, поскольку нет подтвержденного пункта

class Event(models.Model):
    user = models.ForeignKey(User, related_name='seller')
    post = models.ForeignKey(Post, related_name='course')
    price = models.DecimalField(max_digits=6, decimal_places=2)
    stock = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(35)])
    date = models.DateField()
    time_from = models.TimeField()
    time_to = models.TimeField()
    event_types = (
        ('1', 'Webinar'),
        ('2', 'Actual Meet'),

    )
    event_choice = models.CharField(max_length=1, choices=event_types)

    def get_absolute_url(self):
        return reverse('posts:single', kwargs={'username': self.user.username,
                                               'slug': self.post.slug})
    def __str__(self):
        return 'Meet for ' + self.post.title

Как я планирую это сделать: Я планировал добавить группу в админку Django. АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

Home › Authentication and Authorization › Groups › Add group
Name: Verified

Permissions: Chosen permissions 
event| event| Can add event
event| event| Can change event
event| event| Can delete event 

Теперь, что мне делать отсюда?: Правильно ли я все сделал до сих пор, Как мне взять это отсюда. Должен ли я создать модель с именем verified и добавить forms.py для проверки членов. Как разрешения появляются на картинке.

Мой патч обезьяны (не вопрос, для @Ojas Kale)

class Contact(models.Model):
    user_from = models.ForeignKey(User, related_name='supporter')
    user_to = models.ForeignKey(User, related_name='leader')

    def __str__(self):
        return '{} follows {}'.format(self.user_from, self.user_to)


User.add_to_class('following',
                  models.ManyToManyField('self', through=Contact, related_name='followers', symmetrical=False))

1 Ответ

0 голосов
/ 27 июня 2018

Один из способов сделать это - добавить в пользователя столбец is_verified. Есть разные способы сделать это. но расширение из abstractUser, вероятно, является наиболее простым и подходящим в вашем случае, поскольку класс django.contrib.auth.models.AbstractUser обеспечивает полную реализацию пользователя по умолчанию в качестве абстрактной модели.

в вашем app_name.models.py создайте пользовательский класс следующим образом.

from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    is_verified = models.BooleanField(default=False)

в вашем settingps.py

AUTH_USER_MODEL = 'app_name.User'

обратите внимание, как используется имя_приложения .

Теперь вы можете добавить столько атрибутов, сколько захотите.

По умолчанию is_verified имеет значение False, как только администратор одобряет (проверяет), пользователь меняет его на True.

Надеюсь, это поможет.

...