NoReverseMatch с аргументами не найден - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь вставить идентификатор электронной почты в мой django URL, но не получаю обратного соответствия. Идентификаторы электронной почты являются уникальными. Ниже приведены некоторые из моего кода. Любая помощь приветствуется. Спасибо.

models.py

from django.db import models
from django.urls import reverse
from django.shortcuts import render


class IncomingMail(models.Model):
    incomingmailid = models.CharField(primary_key=True, max_length=255)
    conversationid = models.CharField(max_length=255)
    sender = models.EmailField(null=True)
    subject = models.TextField(null=True)
    datetime = models.DateTimeField(null=True)

    def get_absolute_url(self):
        return reverse('mailwithid', kwargs={'id': self.incomingmailid})

urls.py

urlpatterns = [
path('', views.mail, name='mail'),
path('id/<id>/', views.mail, name='mailwithid')
]

views.py

def mail(request, id=None):

    if id:
      allincomingmail = IncomingMail.objects.get(incomingmailid=id)
    else:
      allincomingmail = IncomingMail.objects.all()

    context = {
        'allincomingmail': allincomingmail
    }

    return render(request, 'mail/mail.html', context)

mail. html

{% for message in allincomingmail %}                     
<a href="{% url 'mailwithid' message.incomingmailid %}" class="list-group-item list-group-item-action email-list" aria-control="email-info" name="incominglist">
  <div class="d-flex justify-content-between">
    <small id="show-address">{{ message.sender }}</small>
  </div>
  <p class="mb-1" id="show-subject">{{ message.subject }}</p>
  <small id = "show-datetime">{{ message.datetime }}</small>
</a>
{% endfor %}

Так я сохранил свою модель, если это поможет

        for mail in self.inbox:
            saveinbox = IncomingMail(
                conversationid=mail.conversation_id.id,
                sender=mail.sender.email_address,
                subject=mail.subject,
                datetime=mail.datetime_received + timedelta(hours=8),
                incomingmailid=mail.id
                )
            saveinbox.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...