这是一个django模型文件,但它并没有按照我的预期工作。
我希望to_url方法可以在urls.py文件中进行反向查找,并获取一个url,该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字符串的字典,我相信这应该可以与由permalink修饰器调用的reverse()方法正常工作,但是它会导致:
TypeError: reverse() keywords must be strings