В Django, как мне разрешить пользователям присоединяться к группе, если пользователь знает пароль группы? - PullRequest
0 голосов
/ 09 октября 2019

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

Большинство ответов яfind связаны с аутентификацией пользователя.

class Group(models.Model):  
    name = models.CharField(max_length=16)
    pin = models.IntegerField(unique=True)
    members = models.ManyToManyField(User, related_name='members', blank=True)

Используя приведенную выше модель, я бы хотел, чтобы любой пользователь, который вводит контакт, соответствующий существующему контакту, стал членом соответствующей группы.

Я также открыт для других способов структурировать это, если вы можете предложить рекомендации. Я хотел бы не приглашать пользователей присоединиться к группе по электронной почте или другими способами.

1 Ответ

1 голос
/ 09 октября 2019
  1. Создайте отдельную модель для обработки ПИН-кодов. Это не является обязательным требованием, но я всегда должен допускать расширенную функциональность выводов. Если вы просто хотите сохранить свою модель, пропустите этот шаг.
class Pin(models.Model): 
    pin = models.IntegerField(unique=True)
    attached_group = models.ForeignKey(Group)

По вашему мнению, когда булавка вводится, предположительно через POST, сделайте следующее:
if request.method == POST: 
    group = Group.objects.get(pin=Pin.objects.get(request.POST.get("pin_from_form").pin))
group.members.add(request.user)

Если вы хотите сохранить ту же модель:

group = Group.objects.get(pin=request.POST.get("pin_from_form"))
group.members.add(request.user)

...