检查上下文是模型django

时间:2016-02-12 19:01:59

标签: django templatetag

我有这样的模板标签:

def link(obj):
    return reverse('admin:%s_%s_change' % (obj._meta.app_label, obj._meta.module_name), args=[obj.id])

class AdminEditNode(template.Node):
    def __init__(self, object):
        self.object = template.Variable(object)

    def render(self, context):
        return link(self.object.resolve(context))

def edit_link(parser, token):
    try:
        #split content
        tag_name, info = token.split_contents()
    except ValueError:
        raise template.TemplateSyntaxError(
            '%r tag requires one model argument' % token.contents.split()[0])


    return AdminEditNode(info)

register.tag('edit_link', edit_link)

它呈现了一个指向该对象的管理编辑页面的链接,该页面位于我在视图中发送的模板的上下文中:

def home(request):
    """
    Home page view
    """
    context = Contact.objects.first()
    return render(request, 'home.html', {'info': context})

我需要进行测试,如果上下文是字符串或整数或无,则不会出现错误。我的问题是如何制作" if"我可以在哪里防止这种错误?

1 个答案:

答案 0 :(得分:0)

您可能想要使用isinstance。也许是这样的:

app.get('/', function(req, res) {
    UserNotifications.find(function(err, docs){
            docs.forEach(function(item){
                console.log(item._id);
            });
            res.send(docs);
        });
});