Джанго;Исключение NoReverseMatch - попытка 1 шаблона - PullRequest
0 голосов
/ 30 октября 2019

При попытке протестировать модель get_absolute_url () я получаю следующее исключение. account в данном случае является именем приложения. Я просто пытаюсь проверить путь, который является результатом вызова этой функции:

Здесь используется Django v1.9.

django.core.urlresolvers.NoReverseMatch: Reverse for 'profile' with 
arguments '()' and keyword arguments '{'username': 'test_user'}' not 
found. 1 pattern(s) tried: ['accounts/profile/<username>/']
class Profile(models.Model):
    user = models.OneToOneField(
        settings.AUTH_USER_MODEL, 
        on_delete=models.CASCADE
    )
    birth = models.DateField()
    bio = models.TextField()
    avatar = models.ImageField(upload_to=image_file_path)

    def get_absolute_url(self):
        profile_user = self.user.username
        return reverse('accounts:profile', kwargs={'username': profile_user})
class UserProfileMethods(TestCase):

    def setUp(self):
        self.test_user = User.objects.create_user('test_user')
        self.image = open(join(dirname(__file__), 'images/test_image.jpg'), 'rb')

        self.profile_data = {
            'user' : self.test_user,
            'birth': '2019-01-01',
            'bio': 'Hello World!',
            'avatar': SimpleUploadedFile(
                self.image.name,
                self.image.read(),
                content_type="image/jpeg"
            )
        }

        self.profile = Profile.objects.create(**self.profile_data)
        self.profile_url = self.profile.get_absolute_url()

    def test_profile_url(self):
        self.assertEqual(self.profile_url, 'profile/test_user')
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'sign_in/$', views.sign_in, name='sign_in'),
    url(r'sign_up/$', views.sign_up, name='sign_up'),
    url(r'sign_out/$', views.sign_out, name='sign_out'),
    url(r'profile/<username>/$', views.profile, name='profile')
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...