Вот файл моделей django, который работает не так, как я ожидал.
Я ожидаю, что метод to_url выполнит обратный поиск в файле urls.py и получит URL, который будет соответствовать вызову этого представления с аргументами, предоставленными моделью Arguments.
from django.db import models
class Element(models.Model):
viewname = models.CharField(max_length = 200)
arguments = models.ManyToManyField('Argument', null = True, blank = True )
@models.permalink
def to_url(self):
d = dict( self.arguments.values_list('key', 'value') )
return (self.viewname, (), d)
class Argument(models.Model):
key = models.CharField(max_length=200)
value = models.CharField(max_length=200)
Значение d заканчивается как словарь из строки Unicode в другую строку Unicode, которая, как я считаю, должна нормально работать с методом reverse (), который вызывается декоратором постоянных ссылок, однако это приводит к:
TypeError: reverse() keywords must be strings