django -приглашения JSON просмотреть ошибки - PullRequest
0 голосов
/ 09 мая 2020

Я просто хочу, чтобы пользователь мог отправлять приглашения по электронной почте нескольким пользователям через поле ввода электронной почты, которое позволяет отправлять до 30 электронных писем. Я пробовал использовать django -multi-email-field, но не хочу выполнять больше работы, чем необходимо. django -invitations уже делает ключи приглашения для меня, поэтому я хочу, чтобы URL-адрес json -invite работал. Я получаю сообщение об ошибке

Method Not Allowed (GET): /invitations/send-json-invite/
Method Not Allowed: /invitations/send-json-invite/

при переходе по этому URL-адресу. Я вообще не изменял пакет, но внутри invitations / views.py есть следующее:

class SendJSONInvite(View):
    http_method_names = [u'post']

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        if app_settings.ALLOW_JSON_INVITES:
            return super(SendJSONInvite, self).dispatch(
                request, *args, **kwargs)
        else:
            raise Http404

    def post(self, request, *args, **kwargs):
        status_code = 400
        invitees = json.loads(request.body.decode())
        response = {'valid': [], 'invalid': []}
        if isinstance(invitees, list):
            for invitee in invitees:
                try:
                    validate_email(invitee)
                    CleanEmailMixin().validate_invitation(invitee)
                    invite = Invitation.create(invitee)
                except(ValueError, KeyError):
                    pass
                except(ValidationError):
                    response['invalid'].append({
                        invitee: 'invalid email'})
                except(AlreadyAccepted):
                    response['invalid'].append({
                        invitee: 'already accepted'})
                except(AlreadyInvited):
                    response['invalid'].append(
                        {invitee: 'pending invite'})
                except(UserRegisteredEmail):
                    response['invalid'].append(
                        {invitee: 'user registered email'})
                else:
                    invite.send_invitation(request)
                    response['valid'].append({invitee: 'invited'})

        if response['valid']:
            status_code = 201

        return HttpResponse(
            json.dumps(response),
            status=status_code, content_type='application/json')

Я попытался добавить 'get' к http_method_names, а также создать метод get «pass», но нет успех. Любая помощь очень ценится. По этому пакету нет документации, кроме страницы на github: https://github.com/bee-keeper/django-invitations

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...