如何在Django中将变量从string类型转换为views类型?

2024-06-11 12:34:11 发布

您现在位置:Python中文网/ 问答频道 /正文

你知道吗视图.py地址:

def handbook_cpu_add(request):
    ...

你知道吗型号.py地址:

class CPU(models.Model):
    name = models.CharField(max_length=100)

    def __unicode__(self):
        return self.name

你知道吗测试.py地址:

def test_add_comparison_url(self):
    helper.handbook_add_comparison_url(self, 'cpu')

你知道吗助手.py地址:

def handbook_add_comparison_url(self, item):
    found = resolve('/hardware/handbook/' + item + '/add/')
    t = 'handbook_' + item + '_add'

    self.assertEqual(found.func, t)

如何将变量“t”从类型“string”转换为类型“handbook\u cpu\u add”?你知道吗


Tags: namepyselfadd视图url类型models
2条回答

你倒过来想这个。无需将字符串转换为函数或视图,只需从函数中获取名称并将其与字符串进行比较:

self.assertEqual(found.func.__name__, t)

回答您最初的问题,getattr就是您想要的:

import views


view = getattr(views, 'name')

但是,可以考虑使用@Duncan的答案来实现这种目的。你知道吗

相关问题 更多 >